Project

General

Profile

Download (5.96 KB) Statistics
| Branch: | Revision:

git_sitools_idoc / sitools-idoc / hesiod / javaExt / src / fr / ias / sitools / vo / tap / TableAccessProtocolInputParameters.java @ 779bac69

1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6

    
7
package fr.ias.sitools.vo.tap;
8

    
9
import fr.cnes.sitools.dataset.DataSetApplication;
10
import fr.cnes.sitools.plugins.resources.model.ResourceModel;
11
import java.util.ArrayList;
12
import java.util.Collections;
13
import java.util.HashMap;
14
import java.util.List;
15
import java.util.Map;
16
import java.util.logging.Level;
17
import net.ivoa.xml.votable.v1.Info;
18
import org.restlet.Context;
19
import org.restlet.Request;
20

    
21
/**
22
 *
23
 * @author marc
24
 */
25
public class TableAccessProtocolInputParameters implements DataModelInterface {
26
     
27
    /**
28
    * Data model that stores the metadata response of the service.
29
    */
30
    private final transient Map dataModel = new HashMap();
31
    /**
32
    * Request.
33
    */
34
    private final transient Request request;
35
    /**
36
    * Context.
37
    */
38
    private final transient Context context;
39
    /**
40
    * Application where this resources is linked.
41
    */
42
    private final transient DataSetApplication datasetApp;
43
    /**
44
    * Configuration parameters of this resource.
45
    */
46
    private final transient ResourceModel resourceModel;
47

    
48
    private final String query;
49
    private final String format;
50
   
51
    
52
    /**
53
    * Constructs the objet that returns the metadata of the service.
54
    * @param datasetAppVal application
55
    * @param requestVal request
56
    * @param contextVal context
57
    * @param resourceModelVal configuration parameters
58
    */
59
    public TableAccessProtocolInputParameters(final DataSetApplication datasetAppVal, final Request requestVal, final Context contextVal, final ResourceModel resourceModelVal) {
60
        this.request = requestVal;
61
        this.context = contextVal;
62
        this.datasetApp = datasetAppVal;
63
        this.resourceModel = resourceModelVal;
64
        final String requestType = this.request.getResourceRef().getQueryAsForm().getFirstValue(TableAccessProtocolLibrary.REQUEST);
65
        final String langRequest = this.request.getResourceRef().getQueryAsForm().getFirstValue(TableAccessProtocolLibrary.LANG);
66
        final String phase = this.request.getResourceRef().getQueryAsForm().getFirstValue(TableAccessProtocolLibrary.PHASE);
67
        this.query = this.request.getResourceRef().getQueryAsForm().getFirstValue(TableAccessProtocolLibrary.QUERY);
68
        this.format = this.request.getResourceRef().getQueryAsForm().getFirstValue(TableAccessProtocolLibrary.FORMAT);
69
        //if(langRequestTableAccessProtocolLibrary.langSupported.)
70
        //fillMetadataFormat();
71
    }
72
    
73
   /**
74
   * Fills metadata response.
75
   */
76
  private void fillMetadataFormat() {
77
      
78
    this.dataModel.put("description", this.resourceModel.getParameterByName(TableAccessProtocolLibrary.DESCRIPTION).getValue());
79

    
80
    final Info info = new Info();
81
    info.setName("QUERY_STATUS");
82
    info.setValueAttribute("OK");
83
    final List<Info> listInfos = new ArrayList<Info>();
84
    listInfos.add(info);
85
    this.dataModel.put("infos", listInfos);
86
   
87
    /* ON EN N'A PAS BESOIN
88
    final List<Param> listParam = new ArrayList<Param>();
89
    Param param = new Param();
90
    param.setName("INPUT:POS");
91
    param.setValue("0,0");
92
    param.setDatatype(DataType.DOUBLE);
93
    AnyTEXT anyText = new AnyTEXT();
94
    anyText.getContent().add("Search Position in the form ra,dec where ra and dec are given in decimal degrees in the ICRS coordinate system.");
95
    param.setDESCRIPTION(anyText);
96
    listParam.add(param);
97

98
    param = new Param();
99
    param.setName("INPUT:SIZE");
100
    param.setValue("0.05");
101
    param.setDatatype(DataType.DOUBLE);
102
    anyText = new AnyTEXT();
103
    anyText.getContent().add("Size of search region in the RA and Dec directions.");
104
    param.setDESCRIPTION(anyText);
105
    listParam.add(param);
106

107
    param = new Param();
108
    param.setName("INPUT:FORMAT");
109
    param.setValue(TableAccessProtocolLibrary.ParamStandardFormat.ALL.name());
110
    param.setDatatype(DataType.CHAR);
111
    param.setArraysize("*");
112
    AnyTEXT anyText = new AnyTEXT();
113
    anyText.getContent().add("Requested format of result.");
114
    param.setDESCRIPTION(anyText);
115
    
116

117
    //TODO : le faire pour chaque format
118
    listParam.add(param);
119
 ON EN N'A PAS BESOIN    
120
    param = new Param();
121
    param.setName("INPUT:INTERSECT");
122
    param.setValue(this.resourceModel.getParameterByName(TableAccessProtocolLibrary.INTERSECT).getValue());
123
    param.setDatatype(DataType.CHAR);
124
    anyText = new AnyTEXT();
125
    anyText.getContent().add("Choice of overlap with requested region.");
126
    param.setDESCRIPTION(anyText);
127
    listParam.add(param);
128

129
    param = new Param();
130
    param.setName("INPUT:VERB");
131
    param.setValue(this.resourceModel.getParameterByName(TableAccessProtocolLibrary.VERB).getValue());
132
    param.setDatatype(DataType.INT);
133
    anyText = new AnyTEXT();
134
    anyText.getContent().add("Verbosity level, controlling the number of columns returned.");
135
    param.setDESCRIPTION(anyText);
136
    listParam.add(param);
137

138
    dataModel.put("params", listParam);
139

140
    String dictionaryName = resourceModel.getParameterByName(TableAccessProtocolLibrary.DICTIONARY).getValue();
141
    final List<String> columnList = new ArrayList<String>();
142
    List<Field> fieldList = new ArrayList<Field>();
143
    try {
144
        List<ColumnConceptMappingDTO> mappingList = getDicoFromConfiguration(datasetApp, dictionaryName);
145
        setFields(fieldList, columnList, mappingList);
146
    }catch (SitoolsException ex) {
147
             
148
    }
149
   */ 
150
  }
151
    
152
    @Override
153
    public final Map getDataModel() {
154
      return Collections.unmodifiableMap(this.dataModel);
155
    }
156

    
157
    /* GETTER DE LA CLASSE */
158
    public String getQuery() {
159
        return query;
160
    }
161
    public String getFormat() {
162
        return format;
163
    }
164
    public Context getContext() {
165
        return context;
166
    }
167

    
168
    public Request getRequest() {
169
        return request;
170
    }
171
    public DataSetApplication getDatasetApp() {
172
        return datasetApp;
173
    }
174

    
175
    public ResourceModel getResourceModel() {
176
        return resourceModel;
177
    }
178
 
179
}