Revision 32555 branches/v2_0_0_prep/extensions/org.gvsig.arcims.feature.extension/src/main/java/org/gvsig/fmap/dal/store/arcims/ArcImsStoreProvider.java
ArcImsStoreProvider.java | ||
---|---|---|
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 |
} |
Also available in: Unified diff