Revision 46277 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 | ||
---|---|---|
246 | 246 |
} |
247 | 247 |
|
248 | 248 |
private long calculateSize() throws DataException { |
249 |
boolean hasLimit = this.query.hasLimit(); |
|
249 | 250 |
long limit = this.query.getLimit(); |
250 | 251 |
long mySize = 0; |
251 | 252 |
|
... | ... | |
258 | 259 |
return 0; |
259 | 260 |
} |
260 | 261 |
mySize = provider.getSize(); |
261 |
return (limit>0 && mySize>limit)? limit:mySize;
|
|
262 |
return (hasLimit && mySize>limit)? limit:mySize;
|
|
262 | 263 |
|
263 | 264 |
case FILTERED: |
264 | 265 |
case ORDERED_FILTERED: |
265 | 266 |
try { |
266 | 267 |
iter = this.fastIterator(); |
267 |
while ((limit>0 && (mySize<limit)) || limit==0 ) {
|
|
268 |
while ((hasLimit && (mySize<limit)) || !hasLimit ) {
|
|
268 | 269 |
iter.next(); |
269 | 270 |
mySize++; |
270 | 271 |
} |
... | ... | |
273 | 274 |
} finally { |
274 | 275 |
DisposeUtils.disposeQuietly(iter); |
275 | 276 |
} |
276 |
return (limit>0 && mySize>limit)? limit:mySize; |
|
277 |
return (limit>=0 && mySize>limit)? limit:mySize;
|
|
277 | 278 |
|
278 | 279 |
case EDITED: |
279 | 280 |
case ORDERD_EDITED: |
280 | 281 |
mySize = provider.getSize() |
281 | 282 |
+ store.getFeatureManager().getDeltaSize(); |
282 |
return (limit>0 && mySize>limit)? limit:mySize;
|
|
283 |
return (hasLimit && mySize>limit)? limit:mySize;
|
|
283 | 284 |
|
284 | 285 |
case EDITED_FILTERED: |
285 | 286 |
case ORDERED_EDITED_FILTER: |
286 | 287 |
try { |
287 | 288 |
iter = this.fastIterator(); |
288 |
while ((limit>0 && (mySize<limit)) || limit==0 ) {
|
|
289 |
while ((hasLimit && (mySize<limit)) || !hasLimit ) {
|
|
289 | 290 |
iter.next(); |
290 | 291 |
mySize++; |
291 | 292 |
} |
... | ... | |
294 | 295 |
} finally { |
295 | 296 |
DisposeUtils.disposeQuietly(iter); |
296 | 297 |
} |
297 |
return (limit>0 && mySize>limit)? limit:mySize;
|
|
298 |
return (hasLimit && mySize>limit)? limit:mySize;
|
|
298 | 299 |
|
299 | 300 |
default: |
300 | 301 |
throw new IllegalArgumentException(); |
Also available in: Unified diff