48 |
48 |
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
|
49 |
49 |
import org.gvsig.fmap.dal.feature.EditableFeatureType;
|
50 |
50 |
import org.gvsig.fmap.dal.feature.Feature;
|
|
51 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
|
51 |
52 |
import org.gvsig.fmap.dal.feature.FeatureQuery;
|
|
53 |
import org.gvsig.fmap.dal.feature.FeatureReference;
|
52 |
54 |
import org.gvsig.fmap.dal.feature.FeatureSelection;
|
53 |
55 |
import org.gvsig.fmap.dal.feature.FeatureStore;
|
54 |
56 |
import org.gvsig.fmap.dal.feature.FeatureType;
|
|
57 |
import org.gvsig.fmap.dal.feature.impl.DefaultFeature;
|
55 |
58 |
import org.gvsig.fmap.dal.feature.spi.AbstractFeatureStoreProvider;
|
56 |
59 |
import org.gvsig.fmap.dal.feature.spi.DefaultFeatureProvider;
|
57 |
60 |
import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
|
58 |
61 |
import org.gvsig.fmap.dal.feature.spi.FeatureReferenceProviderServices;
|
59 |
62 |
import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider;
|
60 |
63 |
import org.gvsig.fmap.dal.feature.spi.FeatureStoreProviderServices;
|
|
64 |
import org.gvsig.fmap.dal.resource.file.FileResource;
|
61 |
65 |
import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
|
62 |
66 |
import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
|
63 |
67 |
import org.gvsig.fmap.dal.serverexplorer.arcims.ArcImsServerExplorer;
|
... | ... | |
101 |
105 |
private ArcImsClient arcimsClient;
|
102 |
106 |
private ArcImsStatus arcimsStatus;
|
103 |
107 |
private int numFeats = 0;
|
104 |
|
protected boolean isOpen = false;
|
|
108 |
protected boolean isOpen = false;
|
|
109 |
private List<Feature> features = new ArrayList<Feature>();
|
105 |
110 |
|
106 |
111 |
/**
|
107 |
112 |
* Constructor
|
... | ... | |
114 |
119 |
DataStoreProviderServices storeServices) throws InitializeException {
|
115 |
120 |
|
116 |
121 |
super(params, storeServices, ToolsLocator.getDynObjectManager()
|
117 |
|
.createDynObject(DYNCLASS));
|
118 |
|
|
|
122 |
.createDynObject(DYNCLASS));
|
|
123 |
|
119 |
124 |
// build status from parameters
|
120 |
125 |
ArcImsStoreParameters pa = (ArcImsStoreParameters) params;
|
121 |
126 |
arcimsClient = new ArcImsFeatureClient(pa.getServerUrl(), pa
|
... | ... | |
189 |
194 |
public FeatureSetProvider createSet(FeatureQuery query,
|
190 |
195 |
FeatureType featureType) throws DataException {
|
191 |
196 |
logger.info("ArcImsStoreProvider: createSet");
|
192 |
|
//isOpen = false;
|
|
197 |
// isOpen = false;
|
193 |
198 |
open();
|
194 |
199 |
return new ArcImsSetProvider(this, query);
|
195 |
200 |
}
|
... | ... | |
200 |
205 |
public long getFeatureCount() throws DataException {
|
201 |
206 |
logger.info("ArcImsStoreProvider: getFeatureCount");
|
202 |
207 |
|
203 |
|
return this.numFeats;
|
|
208 |
return features.size();
|
204 |
209 |
}
|
205 |
210 |
|
206 |
211 |
/**
|
... | ... | |
220 |
225 |
|
221 |
226 |
public ResourceProvider getResource() {
|
222 |
227 |
logger.info("ArcImsStoreProvider: getResource");
|
223 |
|
return null;
|
|
228 |
ResourceProvider res = null;
|
|
229 |
try {
|
|
230 |
res = this.createResource(FileResource.NAME, new Object[] { "" });
|
|
231 |
} catch (InitializeException e) {
|
|
232 |
e.printStackTrace();
|
|
233 |
}
|
|
234 |
return res;
|
224 |
235 |
}
|
225 |
236 |
|
226 |
237 |
public Object getSourceId() {
|
227 |
238 |
logger.info("ArcImsStoreProvider: getSourceId");
|
228 |
|
return null;
|
|
239 |
return arcimsClient.getHost();
|
229 |
240 |
}
|
230 |
241 |
|
231 |
242 |
public void open() throws OpenException {
|
... | ... | |
248 |
259 |
logger.debug("Error getting the atributes", e);
|
249 |
260 |
}
|
250 |
261 |
if (feats != null && feats.size() > 0) {
|
251 |
|
//TODO Por ahora solo el primer elemento
|
|
262 |
// TODO Por ahora solo el primer elemento
|
252 |
263 |
List<ArcImsFeature> feats2 = feats.get(0);
|
253 |
264 |
for (ArcImsFeature aFeat : feats2) {
|
254 |
265 |
if (aFeat.isValid()) {
|
... | ... | |
277 |
288 |
throws DataException {
|
278 |
289 |
|
279 |
290 |
if (store != null) {
|
280 |
|
// EditableFeature eFeat = store.createNewFeature();
|
281 |
|
FeatureProvider data = new DefaultFeatureProvider(store
|
282 |
|
.getDefaultFeatureType(), this.createNewOID());
|
|
291 |
|
|
292 |
FeatureType dfType = store.getDefaultFeatureType();
|
|
293 |
String pk = feature.getFieldPK();
|
|
294 |
Object opk = feature.get(pk);
|
|
295 |
FeatureProvider data = new DefaultFeatureProvider(dfType, opk);
|
283 |
296 |
data.setDefaultGeometry(feature.getGeometry());
|
284 |
297 |
Iterator<Map.Entry<String, Object>> it = feature.entrySet()
|
285 |
298 |
.iterator();
|
... | ... | |
292 |
305 |
}
|
293 |
306 |
|
294 |
307 |
}
|
295 |
|
((FeatureStoreProviderServices) store).createFeature(data);
|
296 |
|
|
|
308 |
Feature fe = ((FeatureStoreProviderServices) store)
|
|
309 |
.createFeature(data);
|
|
310 |
DefaultFeature dfeat = (DefaultFeature) fe;
|
|
311 |
FeatureReference ref = dfeat.getReference();
|
|
312 |
features.add(fe);
|
297 |
313 |
}
|
298 |
314 |
}
|
299 |
315 |
|
... | ... | |
336 |
352 |
attributeDescriptor.setGeometrySubType(SUBTYPES.GEOM2D);
|
337 |
353 |
attributeDescriptor.setSRS(CRSFactory.getCRS(arcimsStatus
|
338 |
354 |
.getSrs()));
|
|
355 |
// attributeDescriptor.setIsPrimaryKey(true);
|
339 |
356 |
eFType.setDefaultGeometryAttributeName("geom");
|
340 |
357 |
} else {
|
341 |
358 |
eFType.add(fieldInfo.getName(), parseType(fieldInfo.getType()));
|
|
359 |
if (fieldInfo.getType() == -99) {
|
|
360 |
int si = eFType.size();
|
|
361 |
FeatureAttributeDescriptor attri = eFType
|
|
362 |
.getAttributeDescriptor(si - 1);
|
|
363 |
((EditableFeatureAttributeDescriptor) attri)
|
|
364 |
.setIsPrimaryKey(true);
|
|
365 |
eFType.setHasOID(true);
|
|
366 |
}
|
342 |
367 |
}
|
343 |
368 |
}
|
344 |
369 |
|
345 |
370 |
return eFType.getNotEditableCopy();
|
346 |
371 |
}
|
347 |
372 |
|
348 |
|
|
349 |
|
|
350 |
373 |
/**
|
351 |
374 |
* It executes a wfs Query without spatial filter
|
352 |
375 |
*
|
... | ... | |
381 |
404 |
}
|
382 |
405 |
}
|
383 |
406 |
|
384 |
|
|
385 |
|
|
386 |
407 |
/**
|
387 |
408 |
*
|
388 |
409 |
*/
|
... | ... | |
397 |
418 |
List<FeatureType> types = new ArrayList<FeatureType>(1);
|
398 |
419 |
types.add(defaultFType);
|
399 |
420 |
store.setFeatureTypes(types, defaultFType);
|
400 |
|
|
401 |
421 |
|
402 |
422 |
}
|
403 |
423 |
|
404 |
424 |
/**
|
405 |
|
* Get number
|
|
425 |
* Get number
|
|
426 |
*
|
406 |
427 |
* @return
|
407 |
428 |
*/
|
408 |
429 |
public int getNumFeats() {
|
... | ... | |
429 |
450 |
|
430 |
451 |
return feats;
|
431 |
452 |
}
|
432 |
|
|
433 |
|
|
|
453 |
|
434 |
454 |
/**
|
435 |
455 |
* Parse arcims attribute type to gvsig attribute type
|
|
456 |
*
|
436 |
457 |
* @param arcimsType
|
437 |
458 |
* @return
|
438 |
459 |
*/
|
... | ... | |
464 |
485 |
}
|
465 |
486 |
|
466 |
487 |
}
|
467 |
|
|
|
488 |
|
468 |
489 |
/**
|
469 |
490 |
* Get arcims parameters
|
|
491 |
*
|
470 |
492 |
* @return
|
471 |
493 |
*/
|
472 |
494 |
private ArcImsStoreParameters getArcImsParameters() {
|
473 |
495 |
return (ArcImsStoreParameters) getParameters();
|
474 |
496 |
}
|
475 |
497 |
|
|
498 |
/**
|
|
499 |
*
|
|
500 |
* @return
|
|
501 |
*/
|
|
502 |
public List<Feature> getFeatures() {
|
|
503 |
return features;
|
|
504 |
}
|
|
505 |
|
476 |
506 |
}
|