Revision 44202 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/featureset/DefaultFeatureSet.java
DefaultFeatureSet.java | ||
---|---|---|
229 | 229 |
} |
230 | 230 |
|
231 | 231 |
private long calculateSize() throws DataException { |
232 |
long limit = this.query.getLimit(); |
|
233 |
long mySize = 0; |
|
234 |
|
|
232 | 235 |
int mode = this.getIteratorMode(); |
233 |
long limit = this.query.getLimit(); |
|
234 |
if ((mode & EDITED) != EDITED) { |
|
236 |
switch (mode) { |
|
237 |
case DEFAULT: |
|
238 |
case ORDERED: |
|
235 | 239 |
if (this.provider.isEmpty()) { |
236 | 240 |
return 0; |
237 | 241 |
} |
238 |
} |
|
239 |
if ((mode & FILTERED) == FILTERED) { |
|
240 |
long mySize = 0; |
|
242 |
mySize = provider.getSize(); |
|
243 |
return (limit>0 && mySize>limit)? limit:mySize; |
|
244 |
|
|
245 |
case FILTERED: |
|
246 |
case ORDERED_FILTERED: |
|
241 | 247 |
DisposableIterator iter = null; |
242 | 248 |
try { |
243 | 249 |
iter = this.fastIterator(); |
... | ... | |
246 | 252 |
mySize++; |
247 | 253 |
} |
248 | 254 |
} catch (NoSuchElementException e) { |
249 |
return mySize; |
|
255 |
|
|
250 | 256 |
} finally { |
251 | 257 |
DisposeUtils.disposeQuietly(iter); |
252 | 258 |
} |
253 |
} else if ((mode & EDITED) == EDITED) { |
|
254 |
long mySize = provider.getSize() |
|
259 |
return mySize; |
|
260 |
|
|
261 |
case EDITED: |
|
262 |
case EDITED_FILTERED: |
|
263 |
case ORDERD_EDITED: |
|
264 |
case ORDERED_EDITED_FILTER: |
|
265 |
mySize = provider.getSize() |
|
255 | 266 |
+ store.getFeatureManager().getDeltaSize(); |
256 | 267 |
return (limit>0 && mySize>limit)? limit:mySize; |
268 |
|
|
269 |
default: |
|
270 |
throw new IllegalArgumentException(); |
|
257 | 271 |
} |
258 |
long mySize = provider.getSize(); |
|
259 |
return (limit>0 && mySize>limit)? limit:mySize; |
|
260 | 272 |
} |
261 | 273 |
|
262 | 274 |
public void dispose() { |
Also available in: Unified diff