Revision 32555 branches/v2_0_0_prep/extensions/org.gvsig.arcims.feature.extension/src/main/java/org/gvsig/fmap/dal/store/arcims/ArcImsStoreProvider.java

View differences:

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