Revision 45989 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 | ||
---|---|---|
416 | 416 |
break; |
417 | 417 |
|
418 | 418 |
case FILTERED: |
419 |
it = new FastFilteredIterator(this, index); |
|
419 |
it = new FastFilteredIterator(this, index, elements);
|
|
420 | 420 |
break; |
421 | 421 |
|
422 | 422 |
case ORDERED: |
423 |
if (this.orderedData != null) {
|
|
424 |
it = new FastOrderedIterator(this, index);
|
|
423 |
if(this.provider.canOrder() && this.provider.canIterateFromIndex()){
|
|
424 |
it = new FastDefaultIterator(this, index, elements);
|
|
425 | 425 |
} else { |
426 |
it = new FastOrderedIterator(this, new FastDefaultIterator(this, 0, elements), index); |
|
426 |
if (this.orderedData != null) { |
|
427 |
it = new FastOrderedIterator(this, index); |
|
428 |
} else { |
|
429 |
it = new FastOrderedIterator(this, new FastDefaultIterator(this, 0, -1), index); |
|
430 |
} |
|
427 | 431 |
} |
428 | 432 |
break; |
429 | 433 |
|
430 | 434 |
case ORDERED_FILTERED: |
431 |
if (this.orderedData != null) {
|
|
432 |
it = new FastOrderedIterator(this, index);
|
|
435 |
if(this.provider.canOrder() && this.provider.canFilter() && this.provider.canIterateFromIndex()){
|
|
436 |
it = new FastFilteredIterator(this, index, elements);
|
|
433 | 437 |
} else { |
434 |
it = new FastOrderedIterator(this, new FastFilteredIterator( |
|
435 |
this, 0), index); |
|
438 |
if (this.orderedData != null) { |
|
439 |
it = new FastOrderedIterator(this, index); |
|
440 |
} else { |
|
441 |
it = new FastOrderedIterator(this, new FastFilteredIterator( |
|
442 |
this, 0, -1), index); |
|
443 |
} |
|
436 | 444 |
} |
445 |
|
|
437 | 446 |
break; |
438 | 447 |
|
439 | 448 |
case EDITED: |
440 |
it = new FastEditedIterator(this, index); |
|
449 |
it = new FastEditedIterator(this, index, elements);
|
|
441 | 450 |
break; |
442 | 451 |
|
443 | 452 |
case EDITED_FILTERED: |
444 |
it = new FastEditedFilteredIterator(this, index); |
|
453 |
it = new FastEditedFilteredIterator(this, index, elements);
|
|
445 | 454 |
break; |
446 | 455 |
|
447 | 456 |
case ORDERD_EDITED: |
448 |
if (this.orderedData != null) {
|
|
449 |
it = new FastOrderedIterator(this, index);
|
|
457 |
if(this.provider.canOrder() && this.provider.canIterateFromIndex() && !this.store.getFeatureManager().hasDeleteds()){
|
|
458 |
it = new FastEditedIterator(this, index, elements);
|
|
450 | 459 |
} else { |
451 |
it = new FastOrderedIterator(this, new FastEditedIterator( |
|
452 |
this, 0), index); |
|
460 |
if (this.orderedData != null) { |
|
461 |
it = new FastOrderedIterator(this, index); |
|
462 |
} else { |
|
463 |
it = new FastOrderedIterator(this, new FastEditedIterator( |
|
464 |
this, 0, -1), index); |
|
465 |
} |
|
453 | 466 |
} |
454 | 467 |
break; |
455 | 468 |
|
456 | 469 |
case ORDERED_EDITED_FILTER: |
457 |
if (this.orderedData != null) {
|
|
458 |
it = new FastOrderedIterator(this, index);
|
|
470 |
if(this.provider.canOrder() && this.provider.canFilter() && this.provider.canIterateFromIndex() && !this.store.getFeatureManager().hasDeleteds()){
|
|
471 |
it = new FastEditedFilteredIterator(this, index, elements);
|
|
459 | 472 |
} else { |
460 |
it = new FastOrderedIterator(this, |
|
461 |
new FastEditedFilteredIterator(this, 0), index); |
|
473 |
if (this.orderedData != null) { |
|
474 |
it = new FastOrderedIterator(this, index); |
|
475 |
} else { |
|
476 |
it = new FastOrderedIterator(this, |
|
477 |
new FastEditedFilteredIterator(this, 0, -1), index); |
|
478 |
} |
|
462 | 479 |
} |
463 | 480 |
break; |
464 | 481 |
|
... | ... | |
532 | 549 |
break; |
533 | 550 |
|
534 | 551 |
case FILTERED: |
535 |
it = new FilteredIterator(this, index); |
|
552 |
it = new FilteredIterator(this, index, elements);
|
|
536 | 553 |
break; |
537 | 554 |
|
538 | 555 |
case ORDERED: |
539 |
if (orderedData != null) { |
|
540 |
it = new OrderedIterator(this, index); |
|
556 |
if(this.provider.canOrder() && this.provider.canIterateFromIndex()){ |
|
557 |
it = new DefaultIterator(this, index, elements); |
|
558 |
} else { |
|
559 |
if (orderedData != null) { |
|
560 |
it = new OrderedIterator(this, index); |
|
541 | 561 |
|
542 |
} else { |
|
543 |
it = new OrderedIterator(this, new DefaultIterator(this, 0, elements),index); |
|
562 |
} else { |
|
563 |
it = new OrderedIterator(this, new DefaultIterator(this, 0, elements),index); |
|
564 |
} |
|
544 | 565 |
} |
545 | 566 |
break; |
546 | 567 |
|
547 | 568 |
case ORDERED_FILTERED: |
548 |
it = new OrderedIterator(this, new FilteredIterator(this, 0), |
|
549 |
index); |
|
569 |
if(this.provider.canOrder() && this.provider.canFilter() && this.provider.canIterateFromIndex()){ |
|
570 |
it = new FilteredIterator(this, index, elements); |
|
571 |
} else { |
|
572 |
if (orderedData != null) { |
|
573 |
it = new OrderedIterator(this, index); |
|
574 |
} else { |
|
575 |
it = new OrderedIterator(this, new FilteredIterator(this, 0, -1),index); |
|
576 |
} |
|
577 |
} |
|
550 | 578 |
break; |
551 | 579 |
|
552 | 580 |
case EDITED: |
553 |
it = new EditedIterator(this, index); |
|
581 |
it = new EditedIterator(this, index, elements);
|
|
554 | 582 |
break; |
555 | 583 |
|
556 | 584 |
case EDITED_FILTERED: |
557 |
it = new EditedFilteredIterator(this, index); |
|
585 |
it = new EditedFilteredIterator(this, index, elements);
|
|
558 | 586 |
break; |
559 | 587 |
|
560 | 588 |
case ORDERD_EDITED: |
561 |
it = new OrderedIterator(this, new EditedIterator(this, 0), index); |
|
589 |
if(this.provider.canOrder() && this.provider.canIterateFromIndex() && !this.store.getFeatureManager().hasDeleteds()){ |
|
590 |
it = new EditedIterator(this, index, elements); |
|
591 |
} else { |
|
592 |
if (orderedData != null) { |
|
593 |
it = new OrderedIterator(this, index); |
|
594 |
} else { |
|
595 |
it = new OrderedIterator(this, |
|
596 |
new EditedIterator(this, 0, -1), index); |
|
597 |
} |
|
598 |
} |
|
562 | 599 |
break; |
563 | 600 |
|
564 | 601 |
case ORDERED_EDITED_FILTER: |
565 |
it = new OrderedIterator(this, |
|
566 |
new EditedFilteredIterator(this, 0), index); |
|
602 |
if(this.provider.canOrder() && this.providerCanFilter() && this.provider.canIterateFromIndex() && !this.store.getFeatureManager().hasDeleteds()){ |
|
603 |
it = new EditedFilteredIterator(this, index, elements); |
|
604 |
} else { |
|
605 |
if (orderedData != null) { |
|
606 |
it = new OrderedIterator(this, index); |
|
607 |
} else { |
|
608 |
it = new OrderedIterator(this, |
|
609 |
new EditedFilteredIterator(this, 0, -1), index); |
|
610 |
} |
|
611 |
} |
|
567 | 612 |
break; |
568 | 613 |
|
569 | 614 |
default: |
Also available in: Unified diff