Revision 43358 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/DefaultFeatureSelection.java

View differences:

DefaultFeatureSelection.java
53 53
import org.gvsig.tools.persistence.PersistenceManager;
54 54
import org.gvsig.tools.persistence.PersistentState;
55 55
import org.gvsig.tools.persistence.exception.PersistenceException;
56
import org.gvsig.tools.visitor.Visitor;
56 57
import org.slf4j.Logger;
57 58
import org.slf4j.LoggerFactory;
58 59

  
......
68 69
public class DefaultFeatureSelection extends AbstractFeatureSet
69 70
        implements FeatureSelection {
70 71

  
71
    private static final Logger LOG = LoggerFactory
72
            .getLogger(DefaultFeatureSelection.class);
73

  
74 72
    public class RemoveFromFeatureSelectionException extends DataRuntimeException {
75 73

  
76 74
        /**
......
608 606
     * WARN: not very good performance implementation.
609 607
     */
610 608
    @Override
611
    public DisposableIterator iterator(long index) {
612
        return iterator(index, false);
613
    }
609
	public DisposableIterator iterator(long index) {
610
		return iterator(index, 0, false);
611
	}
614 612

  
613
    @Override
614
        public DisposableIterator iterator(long index, long elements) {
615
		return iterator(index, elements, false);
616
        }
617

  
615 618
    /**
616 619
     * Returns the list of selected values, or the deselected ones if the
617 620
     * selection has been reversed.
......
619 622
     * WARN: not really a fast implementation.
620 623
     */
621 624
    @Override
622
    public DisposableIterator fastIterator(long index) {
623
        return iterator(index, true);
625
	public DisposableIterator fastIterator(long index) {
626
            return fastIterator(index, 0);
627
	}
628

  
629
    @Override
630
    public DisposableIterator fastIterator(long index, long elements) {
631
        return iterator(index, elements, true);
624 632
    }
625 633

  
634

  
626 635
    protected void clearFeatureReferences() {
627 636
        this.featureReferenceSelection.clearFeatureReferences();
628 637
        featureTypeCounts.clear();
......
631 640
    /**
632 641
     * Creates an iterator for the Selection.
633 642
     */
634
    private DisposableIterator iterator(long index, boolean fastIterator) {
643
    private DisposableIterator iterator(long index, long elements, boolean fastIterator) {
635 644
        if (isReversed()) {
636 645
            DisposableIterator iter = new ReversedFeatureIteratorFacade(
637 646
                    getData(), getFeatureStore(), fastIterator);
......
730 739
        return clone;
731 740
    }
732 741

  
742
    @Override
743
    protected void doAccept(Visitor visitor, long firstValueIndex, long elements) throws BaseException {
744
        DisposableIterator iterator = fastIterator(firstValueIndex, elements);
745
        if (iterator != null) {
746
            try {
747
                while (iterator.hasNext()) {
748
                    Feature feature = (Feature) iterator.next();
749
                    visitor.visit(feature);
750
                }
751
            } finally {
752
                iterator.dispose();
753
            }
754
        }
755
    }
756

  
733 757
}

Also available in: Unified diff