Revision 45739 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/editing/memory/FeatureManager.java
FeatureManager.java | ||
---|---|---|
31 | 31 |
import java.util.Map; |
32 | 32 |
import java.util.NoSuchElementException; |
33 | 33 |
import org.gvsig.fmap.dal.exception.DataException; |
34 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
|
34 | 35 |
import org.gvsig.fmap.dal.feature.Feature; |
35 | 36 |
import org.gvsig.fmap.dal.feature.FeatureReference; |
36 | 37 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
... | ... | |
91 | 92 |
return previousFeature; |
92 | 93 |
} |
93 | 94 |
|
94 |
public void add(Feature feature) { |
|
95 |
public void add(EditableFeature feature) {
|
|
95 | 96 |
FeatureReference id = feature.getReference(); |
96 | 97 |
if(!original.containsKey(id)){ |
97 | 98 |
original.put(id, null); |
... | ... | |
178 | 179 |
return feat; |
179 | 180 |
} |
180 | 181 |
|
181 |
public int update(Feature feature, Feature oldFeature) { |
|
182 |
public int update(EditableFeature feature, Feature oldFeature) {
|
|
182 | 183 |
FeatureReference id = feature.getReference(); |
183 | 184 |
if(!original.containsKey(id)){ |
184 | 185 |
int n = expansionAdapter.addObject(oldFeature); |
... | ... | |
299 | 300 |
} |
300 | 301 |
|
301 | 302 |
public Iterator<FeatureProvider> getInserted() { |
302 |
Iterator<Feature> it = new InsertedFeaturesIterator(); |
|
303 |
Iterator<EditableFeature> it = new InsertedFeaturesIterator();
|
|
303 | 304 |
return new Iterator<FeatureProvider>() { |
304 | 305 |
@Override |
305 | 306 |
public boolean hasNext() { |
... | ... | |
313 | 314 |
}; |
314 | 315 |
} |
315 | 316 |
|
316 |
public Iterator<Feature> getInsertedFeatures() { |
|
317 |
public Iterator<EditableFeature> getInsertedFeatures() {
|
|
317 | 318 |
return new InsertedFeaturesIterator(); |
318 | 319 |
} |
319 | 320 |
|
320 |
private class InsertedFeaturesIterator implements Iterator<Feature> { |
|
321 |
private class InsertedFeaturesIterator implements Iterator<EditableFeature> {
|
|
321 | 322 |
|
322 | 323 |
private final Iterator addedIter; |
323 |
private Feature feature; |
|
324 |
private EditableFeature feature;
|
|
324 | 325 |
private Boolean hasnext = null; |
325 | 326 |
|
326 | 327 |
public InsertedFeaturesIterator() { |
... | ... | |
336 | 337 |
int pos; |
337 | 338 |
while (addedIter.hasNext()) { |
338 | 339 |
pos = ((Integer) addedIter.next()); |
339 |
feature = (Feature) expansionAdapter.getObject(pos); |
|
340 |
feature = (EditableFeature) expansionAdapter.getObject(pos);
|
|
340 | 341 |
if (!deleted.contains(feature.getReference())) { |
341 | 342 |
hasnext = true; |
342 | 343 |
break; |
... | ... | |
346 | 347 |
} |
347 | 348 |
|
348 | 349 |
@Override |
349 |
public Feature next() { |
|
350 |
public EditableFeature next() {
|
|
350 | 351 |
if (!hasNext()) { |
351 | 352 |
throw new NoSuchElementException(); |
352 | 353 |
} |
... | ... | |
361 | 362 |
|
362 | 363 |
} |
363 | 364 |
|
364 |
public Iterator<Feature> getUpdatedFeatures() { |
|
365 |
public Iterator<EditableFeature> getUpdatedFeatures() {
|
|
365 | 366 |
return new UpdatedFeaturesIterator(); |
366 | 367 |
} |
367 | 368 |
|
368 | 369 |
public Iterator<FeatureProvider> getUpdated() { |
369 |
Iterator<Feature> it = new UpdatedFeaturesIterator(); |
|
370 |
Iterator<EditableFeature> it = new UpdatedFeaturesIterator();
|
|
370 | 371 |
return new Iterator<FeatureProvider>() { |
371 | 372 |
@Override |
372 | 373 |
public boolean hasNext() { |
... | ... | |
380 | 381 |
}; |
381 | 382 |
} |
382 | 383 |
|
383 |
private class UpdatedFeaturesIterator implements Iterator<Feature> { |
|
384 |
private class UpdatedFeaturesIterator implements Iterator<EditableFeature> {
|
|
384 | 385 |
|
385 | 386 |
private Boolean hasnext = null; |
386 | 387 |
private final Iterator iter; |
387 |
private Feature feature; |
|
388 |
private EditableFeature feature;
|
|
388 | 389 |
private int pos; |
389 | 390 |
|
390 | 391 |
public UpdatedFeaturesIterator() { |
... | ... | |
400 | 401 |
hasnext = false; |
401 | 402 |
while (iter.hasNext()) { |
402 | 403 |
pos++; |
403 |
feature = (Feature) iter.next();
|
|
404 |
if ( feature != null &&
|
|
405 |
!deleted.contains(feature.getReference()) &&
|
|
404 |
Feature f = (Feature) iter.next();
|
|
405 |
if ( f != null && |
|
406 |
!deleted.contains(f.getReference()) && |
|
406 | 407 |
modifiedFromOriginal.containsValue(pos)) { |
407 | 408 |
hasnext = true; |
409 |
feature = (EditableFeature) f; |
|
408 | 410 |
break; |
409 | 411 |
} |
410 | 412 |
} |
... | ... | |
412 | 414 |
} |
413 | 415 |
|
414 | 416 |
@Override |
415 |
public Feature next() { |
|
417 |
public EditableFeature next() {
|
|
416 | 418 |
if (!hasNext()) { |
417 | 419 |
throw new NoSuchElementException(); |
418 | 420 |
} |
Also available in: Unified diff