Revision 32589

View differences:

branches/v2_0_0_prep/extensions/org.gvsig.arcims.feature.extension/src/main/java/org/gvsig/fmap/dal/store/arcims/ArcImsSetProvider.java
28 28

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

  
31
import java.util.HashMap;
32 31
import java.util.Iterator;
33 32

  
34 33
import org.gvsig.fmap.dal.exception.DataException;
34
import org.gvsig.fmap.dal.feature.Feature;
35 35
import org.gvsig.fmap.dal.feature.FeatureQuery;
36 36
import org.gvsig.fmap.dal.feature.FeatureType;
37 37
import org.gvsig.fmap.dal.feature.impl.DefaultFeature;
......
44 44
 */
45 45
public class ArcImsSetProvider extends AbstractFeatureSetProvider {
46 46

  
47
	/**
48
	 * Constructor
49
	 * 
50
	 * @param store
51
	 * @param query
52
	 */
47 53
	public ArcImsSetProvider(ArcImsStoreProvider store, FeatureQuery query) {
48 54
		super(store, query, null);
49 55
	}
50 56

  
57
	/**
58
	 * Contructor
59
	 * 
60
	 * @param store
61
	 * @param query
62
	 * @param featureType
63
	 */
51 64
	public ArcImsSetProvider(ArcImsStoreProvider store, FeatureQuery query,
52 65
			FeatureType featureType) {
53 66
		super(store, query, featureType);
......
59 72
	 * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#canFilter()
60 73
	 */
61 74
	public boolean canFilter() {
62
		// TODO Auto-generated method stub
63 75
		return false;
64 76
	}
65 77

  
......
70 82
	 * org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#canIterateFromIndex()
71 83
	 */
72 84
	public boolean canIterateFromIndex() {
73
		// TODO Auto-generated method stub
74 85
		return false;
75 86
	}
76 87

  
......
80 91
	 * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#canOrder()
81 92
	 */
82 93
	public boolean canOrder() {
83
		// TODO Auto-generated method stub
84 94
		return false;
85 95
	}
86 96

  
......
99 109
	 * @see org.gvsig.fmap.dal.feature.spi.FeatureSetProvider#isEmpty()
100 110
	 */
101 111
	public boolean isEmpty() throws DataException {
102
		// TODO Auto-generated method stub
112
		long count = getStore().getFeatureCount();
113
		if (count < 0) {
114
			return true;
115
		}
103 116
		return false;
104 117
	}
105 118

  
119
	/**
120
	 * create fast iterator over store
121
	 */
106 122
	protected AbstractFeatureProviderIterator createFastIterator(long index)
107 123
			throws DataException {
108
		// FIXME Cuidado, el iterador comienza en el valor 0
109
		// pasa del indice que recibe la funcion
110
		return createIterator(0);
124
		return new ArcImsFastIterator((ArcImsStoreProvider) getStore(),
125
				getFeatureType());
111 126
	}
112 127

  
128
	/**
129
	 * Create iterator over stor
130
	 */
113 131
	protected AbstractFeatureProviderIterator createIterator(long index)
114 132
			throws DataException {
115 133
		return new ArcImsIterator((ArcImsStoreProvider) getStore(),
116 134
				getFeatureType());
117 135
	}
118 136

  
137
	/**
138
	 * 
139
	 */
119 140
	protected void doDispose() throws BaseException {
120 141
		// Nothing to do
121 142
	}
122 143

  
144
	/**
145
	 * Protected class ArcImsIterator
146
	 * 
147
	 * @author vsanjaime
148
	 * 
149
	 */
123 150
	protected class ArcImsIterator extends AbstractFeatureProviderIterator {
151

  
124 152
		protected FeatureType type;
125
		Iterator features = null;
153
		Iterator<Feature> features = null;
126 154

  
127 155
		public ArcImsIterator(ArcImsStoreProvider store, FeatureType type)
128 156
				throws DataException {
......
136 164
		}
137 165

  
138 166
		protected Object internalNext() {
139
			return ((DefaultFeature)features.next()).getData();
167
			return ((DefaultFeature) features.next()).getData();
140 168
		}
141 169

  
142 170
		/*
......
149 177
		}
150 178

  
151 179
		protected void doDispose() throws BaseException {
152
//			s.clear();
180
			// s.clear();
153 181
		}
154 182
	}
183

  
184
	/**
185
	 * Protected class ArcImsFastIterator
186
	 * 
187
	 * @author vsanjaime
188
	 * 
189
	 */
190
	protected class ArcImsFastIterator extends ArcImsIterator {
191

  
192
		public ArcImsFastIterator(ArcImsStoreProvider store, FeatureType type)
193
				throws DataException {
194
			super(store, type);
195
		}
196
	}
155 197
}
branches/v2_0_0_prep/extensions/org.gvsig.arcims.feature.extension/src/main/java/org/gvsig/fmap/dal/store/arcims/ArcImsStoreProvider.java
104 104
	// ArcIms Parameters
105 105
	private ArcImsClient arcimsClient;
106 106
	private ArcImsStatus arcimsStatus;
107
	private int numFeats = 0;
108 107
	protected boolean isOpen = false;
109 108
	private List<Feature> features = new ArrayList<Feature>();
110 109

  
......
133 132

  
134 133
		// initialize default feature type
135 134
		this.initDefaultFeatureType();
135
		
136
//		try {
137
//			this.open();
138
//		} catch (OpenException e) {
139
//			e.printStackTrace();
140
//		}
136 141

  
137 142
	}
138 143

  
......
245 250
			return;
246 251
		}
247 252

  
248
		this.numFeats = 0;
249

  
250 253
		FeatureStoreProviderServices store = (FeatureStoreProviderServices) this
251 254
				.getFeatureStore();
252 255

  
......
265 268
				if (aFeat.isValid()) {
266 269
					try {
267 270
						this.addFeatureToStore((FeatureStore) store, aFeat);
268
						this.numFeats++;
271

  
269 272
					} catch (DataException e) {
270 273
						logger.error("Error adding feature", e);
271 274
						continue;
......
292 295
			FeatureType dfType = store.getDefaultFeatureType();
293 296
			String pk = feature.getFieldPK();
294 297
			Object opk = feature.get(pk);
295
			FeatureProvider data = new DefaultFeatureProvider(dfType, opk);
298
			DefaultFeatureProvider data = new DefaultFeatureProvider(dfType,
299
					opk);
296 300
			data.setDefaultGeometry(feature.getGeometry());
301
			data.setDefaultEnvelope(feature.getEnvelope());
297 302
			Iterator<Map.Entry<String, Object>> it = feature.entrySet()
298 303
					.iterator();
299 304
			while (it.hasNext()) {
......
307 312
			}
308 313
			Feature fe = ((FeatureStoreProviderServices) store)
309 314
					.createFeature(data);
315

  
310 316
			DefaultFeature dfeat = (DefaultFeature) fe;
317

  
311 318
			FeatureReference ref = dfeat.getReference();
312 319
			features.add(fe);
313 320
		}
......
419 426
		types.add(defaultFType);
420 427
		store.setFeatureTypes(types, defaultFType);
421 428

  
422
	}
429
	}	
423 430

  
424 431
	/**
425
	 * Get number
426 432
	 * 
427 433
	 * @return
428
	 */
429
	public int getNumFeats() {
430
		return numFeats;
431
	}
432

  
433
	/**
434
	 * 
435
	 * @return
436 434
	 * @throws DataException
437 435
	 */
438 436
	public HashMap getMapFeatures() throws DataException {

Also available in: Unified diff