Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / extensions / org.gvsig.arcims.feature.extension / src / main / java / org / gvsig / fmap / dal / store / arcims / ArcImsStoreParameters.java @ 32543

History | View | Annotate | Download (9.61 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22

    
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2010 Prodevelop S.L. main development
26
 * http://www.prodevelop.es
27
 */
28

    
29
package org.gvsig.fmap.dal.store.arcims;
30

    
31
import java.util.Vector;
32

    
33
import org.cresques.cts.IProjection;
34
import org.gvsig.fmap.dal.DataParameters;
35
import org.gvsig.fmap.dal.DataStoreParameters;
36
import org.gvsig.fmap.dal.DataTypes;
37
import org.gvsig.fmap.dal.exception.InitializeException;
38
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
39
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
40
import org.gvsig.fmap.geom.primitive.impl.Envelope2D;
41
import org.gvsig.remoteclient.arcims.utils.ServiceInformation;
42
import org.gvsig.tools.ToolsLocator;
43
import org.gvsig.tools.dynobject.DelegatedDynObject;
44
import org.gvsig.tools.dynobject.DynClass;
45
import org.gvsig.tools.dynobject.DynField;
46
import org.gvsig.tools.dynobject.DynObjectManager;
47

    
48
/**
49
 * ArcIMS provider parameters
50
 * 
51
 * @author vsanjaime version 2.0
52
 * 
53
 */
54
public class ArcImsStoreParameters extends AbstractDataParameters implements
55
                DataStoreParameters {
56

    
57
        protected static DynClass DYNCLASS = null;
58
        public static final String DYNCLASS_NAME = "ArcIMSStoreParameters";
59

    
60
        public static final String DYNFIELDNAME_SERVERURL = "serverURL";
61
        public static final String DYNFIELDNAME_SERVERVERSION = "serverVersion";
62
        public static final String DYNFIELDNAME_SERVICETYPE = "serviceType";
63
        public static final String DYNFIELDNAME_SERVICENAME = "serviceName";
64
        public static final String DYNFIELDNAME_SERVICEINFO = "serviceInfo";
65
        public static final String DYNFIELDNAME_SELECTEDLAYERS = "selectedLayers";
66
        public static final String DYNFIELDNAME_GROUPLAYERS = "groupLayers";
67
        public static final String DYNFIELDNAME_SRS = "srs";
68
        public static final String DYNFIELDNAME_ENVELOPE = "envelope";
69

    
70
        private DelegatedDynObject delegatedDynObject;
71

    
72
        /**
73
         * Constructor
74
         */
75
        public ArcImsStoreParameters() {
76
                super();
77
                this.delegatedDynObject = (DelegatedDynObject) ToolsLocator
78
                                .getDynObjectManager().createDynObject(
79
                                                ArcImsStoreParameters.DYNCLASS);
80
        }
81

    
82
        @Override
83
        protected DelegatedDynObject getDelegatedDynObject() {
84
                return delegatedDynObject;
85
        }
86

    
87
        @SuppressWarnings("unchecked")
88
        public ArcImsStoreParameters(DataParameters dataParameters)
89
                        throws InitializeException, ProviderNotRegisteredException {
90
                this();
91
                this.setServerUrl((String) dataParameters
92
                                .getDynValue(ArcImsStoreParameters.DYNFIELDNAME_SERVERURL));
93
                this.setServerVersion((String) dataParameters
94
                                .getDynValue(ArcImsStoreParameters.DYNFIELDNAME_SERVERVERSION));
95
                this.setServiceType((String) dataParameters
96
                                .getDynValue(ArcImsStoreParameters.DYNFIELDNAME_SERVICETYPE));
97
                this.setServiceName((String) dataParameters
98
                                .getDynValue(ArcImsStoreParameters.DYNFIELDNAME_SERVICENAME));
99
                this.setServiceInfo((ServiceInformation) dataParameters
100
                                .getDynValue(ArcImsStoreParameters.DYNFIELDNAME_SERVICEINFO));
101
                this
102
                                .setSelectedLayers((Vector<String>) dataParameters
103
                                                .getDynValue(ArcImsStoreParameters.DYNFIELDNAME_SELECTEDLAYERS));
104
                this.setGroupLayers((Boolean) dataParameters
105
                                .getDynValue(ArcImsStoreParameters.DYNFIELDNAME_GROUPLAYERS));
106
                this.setSRS((IProjection) dataParameters
107
                                .getDynValue(ArcImsStoreParameters.DYNFIELDNAME_SRS));
108
                this.setEnvelope((Envelope2D) dataParameters
109
                                .getDynValue(ArcImsStoreParameters.DYNFIELDNAME_ENVELOPE));
110
        }
111

    
112
        /**
113
         * register dynamic elements
114
         */
115
        protected static void registerDynClass() {
116
                DynObjectManager dynman = ToolsLocator.getDynObjectManager();
117
                DynClass dynClass;
118
                DynField field;
119
                if (DYNCLASS == null) {
120
                        dynClass = dynman.add(DYNCLASS_NAME);
121
                        field = dynClass.addDynField(DYNFIELDNAME_SERVERURL);
122
                        field.setTheTypeOfAvailableValues(DynField.ANY);
123
                        field.setDescription("URL of the ArcIMS server");
124
                        field.setType(DataTypes.STRING);
125
                        field.setMandatory(true);
126

    
127
                        field = dynClass.addDynField(DYNFIELDNAME_SERVERVERSION);
128
                        field.setTheTypeOfAvailableValues(DynField.ANY);
129
                        field.setDescription("Version of the WFS server");
130
                        field.setType(DataTypes.STRING);
131
                        field.setMandatory(false);
132

    
133
                        field = dynClass.addDynField(DYNFIELDNAME_SERVICETYPE);
134
                        field.setTheTypeOfAvailableValues(DynField.ANY);
135
                        field.setDescription("Feature type to retrieve");
136
                        field.setType(DataTypes.STRING);
137
                        field.setMandatory(true);
138

    
139
                        field = dynClass.addDynField(DYNFIELDNAME_SERVICENAME);
140
                        field.setTheTypeOfAvailableValues(DynField.ANY);
141
                        field.setDescription("name of the arcims service");
142
                        field.setType(DataTypes.STRING);
143
                        field.setMandatory(true);
144

    
145
                        field = dynClass.addDynField(DYNFIELDNAME_SERVICEINFO);
146
                        field.setTheTypeOfAvailableValues(DynField.ANY);
147
                        field.setDescription("arcims service information");
148
                        field.setType(DataTypes.OBJECT);
149
                        field.setMandatory(true);
150

    
151
                        field = dynClass.addDynField(DYNFIELDNAME_SELECTEDLAYERS);
152
                        field.setTheTypeOfAvailableValues(DynField.ANY);
153
                        field.setDescription("Layers selected in the arcims service");
154
                        field.setType(DataTypes.LIST);
155
                        field.setMandatory(true);
156

    
157
                        field = dynClass.addDynField(DYNFIELDNAME_GROUPLAYERS);
158
                        field.setTheTypeOfAvailableValues(DynField.ANY);
159
                        field.setDescription("group selected layers");
160
                        field.setType(DataTypes.BOOLEAN);
161
                        field.setMandatory(true);
162

    
163
                        field = dynClass.addDynField(DYNFIELDNAME_SRS);
164
                        field.setTheTypeOfAvailableValues(DynField.ANY);
165
                        field.setDescription("srs");
166
                        field.setType(DataTypes.SRS);
167
                        field.setMandatory(true);
168

    
169
                        field = dynClass.addDynField(DYNFIELDNAME_ENVELOPE);
170
                        field.setTheTypeOfAvailableValues(DynField.ANY);
171
                        field.setDescription("envelope");
172
                        field.setType(DataTypes.OBJECT);
173
                        field.setMandatory(true);
174

    
175
                        DYNCLASS = dynClass;
176
                }
177
        }
178

    
179
        /**
180
         * Get store name
181
         * 
182
         * @return
183
         */
184
        public String getDataStoreName() {
185
                return ArcImsStoreProvider.NAME;
186
        }
187

    
188
        /**
189
         * Get description about store
190
         * 
191
         * @return
192
         */
193
        public String getDescription() {
194
                return ArcImsStoreProvider.DESCRIPTION;
195
        }
196

    
197
        /**
198
         * 
199
         */
200
        public boolean isValid() {
201
                return false;
202
        }
203

    
204
        /**
205
         * get server url
206
         * 
207
         * @return
208
         */
209
        public String getServerUrl() {
210
                return (String) this.getDynValue(DYNFIELDNAME_SERVERURL);
211
        }
212

    
213
        /**
214
         * set server url
215
         * 
216
         * @param serverUrl
217
         */
218
        public void setServerUrl(String serverUrl) {
219
                this.setDynValue(DYNFIELDNAME_SERVERURL, serverUrl);
220
        }
221

    
222
        /**
223
         * get server version
224
         * @return
225
         */
226
        public String getServerVersion() {
227
                return (String) this.getDynValue(DYNFIELDNAME_SERVERVERSION);
228
        }
229

    
230
        /**
231
         * set server version
232
         * @param serverVersion
233
         */
234
        public void setServerVersion(String serverVersion) {
235
                this.setDynValue(DYNFIELDNAME_SERVERVERSION, serverVersion);
236
        }
237

    
238
        /**
239
         * get service type (Feature or Image)
240
         * @return
241
         */
242
        public String getServiceType() {
243
                return (String) this.getDynValue(DYNFIELDNAME_SERVICETYPE);
244
        }
245

    
246
        /**
247
         * set service type (Feature or Image)
248
         * @return
249
         */
250
        public void setServiceType(String serviceType) {
251
                this.setDynValue(DYNFIELDNAME_SERVICETYPE, serviceType);
252
        }
253

    
254
        /**
255
         * get service name
256
         * @return
257
         */
258
        public String getServiceName() {
259
                return (String) this.getDynValue(DYNFIELDNAME_SERVICENAME);
260
        }
261

    
262
        /**
263
         * set service name
264
         * @param serviceName
265
         */
266
        public void setServiceName(String serviceName) {
267
                this.setDynValue(DYNFIELDNAME_SERVICENAME, serviceName);
268
        }
269

    
270
        /**
271
         * get service info (from capabilities)
272
         * @return
273
         */
274
        public ServiceInformation getServiceInfo() {
275
                return (ServiceInformation) this.getDynValue(DYNFIELDNAME_SERVICEINFO);
276
        }
277

    
278
        /**
279
         * set service info 
280
         * @param serviceInfo
281
         */
282
        public void setServiceInfo(ServiceInformation serviceInfo) {
283
                this.setDynValue(DYNFIELDNAME_SERVICEINFO, serviceInfo);
284
        }
285

    
286
        /**
287
         * get selected layers by user
288
         * @return
289
         */
290
        @SuppressWarnings("unchecked")
291
        public Vector<String> getSelectedLayers() {
292
                return (Vector<String>) this.getDynValue(DYNFIELDNAME_SELECTEDLAYERS);
293
        }
294

    
295
        /**
296
         * set selected layers by user
297
         * @param selectedlayers
298
         */
299
        public void setSelectedLayers(Vector<String> selectedlayers) {
300
                this.setDynValue(DYNFIELDNAME_SELECTEDLAYERS, selectedlayers);
301
        }
302

    
303
        /**
304
         * the selected layers must be grouped
305
         * @return
306
         */
307
        public Boolean isGroupLayers() {
308
                return (Boolean) this.getDynValue(DYNFIELDNAME_GROUPLAYERS);
309
        }
310

    
311
        /**
312
         * group layers
313
         * @param groupLayers
314
         */
315
        public void setGroupLayers(Boolean groupLayers) {
316
                this.setDynValue(DYNFIELDNAME_GROUPLAYERS, groupLayers);
317
        }
318

    
319
        /**
320
         * set SRS
321
         * @param srs
322
         */
323
        public void setSRS(IProjection srs) {
324
                this.setDynValue(DYNFIELDNAME_SRS, srs);
325

    
326
        }
327

    
328
        /**
329
         * get SRS
330
         * @return
331
         */
332
        public IProjection getSRS() {
333
                return (IProjection) this.getDynValue(DYNFIELDNAME_SRS);
334
        }
335

    
336
        /**
337
         * set envelope
338
         * @param envelope
339
         */
340
        public void setEnvelope(Envelope2D envelope) {
341
                this.setDynValue(DYNFIELDNAME_ENVELOPE, envelope);
342

    
343
        }
344

    
345
        /**
346
         * get envelope
347
         * @return
348
         */
349
        public Envelope2D getEnvelope() {
350
                return (Envelope2D) this.getDynValue(DYNFIELDNAME_ENVELOPE);
351
        }
352

    
353
}