Revision 36366 branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/feature/impl/FeatureManager.java
FeatureManager.java | ||
---|---|---|
69 | 69 |
private ArrayList deleted = new ArrayList();//<FeatureID> |
70 | 70 |
private int deltaSize=0; |
71 | 71 |
private Map added = new LinkedHashMap(); |
72 |
private Map addedAndDeleted = new LinkedHashMap(); |
|
72 | 73 |
private HashMap modifiedFromOriginal=new HashMap(); |
73 |
public FeatureManager(ExpansionAdapter expansionAdapter){ |
|
74 |
|
|
75 |
public FeatureManager(ExpansionAdapter expansionAdapter){ |
|
74 | 76 |
this.expansionAdapter=expansionAdapter; |
75 | 77 |
} |
76 | 78 |
|
77 |
|
|
78 | 79 |
public Feature delete(FeatureReference id) { |
79 | 80 |
deleted.add(id); |
80 | 81 |
Integer num = (Integer) added.remove(id); |
... | ... | |
83 | 84 |
feature = (Feature)modifiedFromOriginal.remove(id); |
84 | 85 |
}else{ |
85 | 86 |
feature = (Feature) expansionAdapter.getObject(num.intValue()); |
87 |
addedAndDeleted.put(id, num); |
|
86 | 88 |
} |
87 | 89 |
deltaSize--; |
88 | 90 |
return feature; |
... | ... | |
150 | 152 |
// Si no existe feature con ese id... ? retorna null ? |
151 | 153 |
// en EditedDefaultIterator se hace uso de ese comportamiento. |
152 | 154 |
// |
153 |
Integer intNum =((Integer) added.get(id)); |
|
155 |
Integer intNum = ((Integer) added.get(id));
|
|
154 | 156 |
if (intNum == null){ |
155 | 157 |
intNum =((Integer) modifiedFromOriginal.get(id)); |
156 |
if (intNum == null){ |
|
157 |
return null; |
|
158 |
if (intNum == null){ |
|
159 |
//If the feature has been added and deleted |
|
160 |
intNum = (Integer)addedAndDeleted.get(id); |
|
161 |
if (intNum == null){ |
|
162 |
return null; |
|
163 |
} |
|
158 | 164 |
} |
159 | 165 |
} |
160 | 166 |
int num = intNum.intValue(); |
... | ... | |
246 | 252 |
modifiedFromOriginal.clear(); |
247 | 253 |
expansionAdapter.close(); |
248 | 254 |
deleted.clear();//<FeatureID> |
255 |
addedAndDeleted.clear(); |
|
249 | 256 |
deltaSize=0; |
250 | 257 |
} |
251 | 258 |
|
... | ... | |
254 | 261 |
return added.size()>0 || modifiedFromOriginal.size() > 0 || deleted.size() > 0; |
255 | 262 |
} |
256 | 263 |
|
257 |
|
|
258 |
// public Iterator newsFeaturesIterator(long index) { |
|
259 |
// if (index==0) |
|
260 |
// return newsFeaturesIterator(); |
|
261 |
// |
|
262 |
// return Arrays.asList(added.values()).listIterator((int)index); |
|
263 |
// } |
|
264 |
// |
|
265 |
// public Iterator newsFeaturesIterator() { |
|
266 |
// return added.values().iterator(); |
|
267 |
// } |
|
268 | 264 |
public Iterator getDeleted() { |
269 | 265 |
return new DeletedIterator(); |
270 | 266 |
|
Also available in: Unified diff