Revision 32589
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