Revision 23928 branches/v2_0_0_prep/libraries/libFMap_data/src/org/gvsig/fmap/data/feature/impl/FeatureIteratorFacade.java

View differences:

FeatureIteratorFacade.java
29 29
import java.util.Iterator;
30 30

  
31 31
import org.apache.log4j.Logger;
32
import org.gvsig.fmap.data.exceptions.ReadException;
33
import org.gvsig.fmap.data.feature.FeatureID;
32
import org.gvsig.fmap.data.exceptions.DataException;
33
import org.gvsig.fmap.data.feature.Feature;
34
import org.gvsig.fmap.data.feature.FeatureReference;
34 35

  
35 36
/**
36
 * Facade over a Iterator of FeatureIDs, to return Features instead.
37
 * Facade over a Iterator of FeatureReferences, to return Features instead.
37 38
 * 
38 39
 * @author <a href="mailto:cordin@disid.com">C?sar Ordi?ana</a>
39 40
 */
......
41 42

  
42 43
    static Logger logger = Logger.getLogger(FeatureIteratorFacade.class);
43 44

  
44
    private Iterator featureIDIterator;
45
    private Iterator refIterator;
45 46

  
46
    public FeatureIteratorFacade(Iterator featureIDIterator) {
47
        this.featureIDIterator = featureIDIterator;
47
    public FeatureIteratorFacade(Iterator refIterator) {
48
        this.refIterator = refIterator;
48 49
    }
49 50

  
50 51
    public boolean hasNext() {
51
        return featureIDIterator.hasNext();
52
        return refIterator.hasNext();
52 53
    }
53 54

  
54 55
    public Object next() {
55
        FeatureID featureID = nextFeatureID();
56
        FeatureReference ref = nextFeatureReference();
56 57
        try {
57
            return featureID.getFeature(null);
58
        } catch (ReadException ex) {
59
            logger.error("Error loading the Feature with FeatureID: "
60
                    + featureID, ex);
58
            return getFeature(ref);
59
        } catch (DataException ex) {
60
            logger.error("Error loading the Feature with FeatureReference: "
61
                    + ref, ex);
61 62

  
62 63
            return null;            
63 64
        }
64 65
    }
65 66

  
66 67
    /**
67
     * Returns the next FeatureID.
68
     * Returns the next FeatureReference.
68 69
     * 
69
     * @return the next FeatureID
70
     * @return the next FeatureReference
70 71
     */
71
    public FeatureID nextFeatureID() {
72
        return (FeatureID) featureIDIterator.next();
72
    public FeatureReference nextFeatureReference() {
73
        return (FeatureReference) refIterator.next();
73 74
    }
74

  
75
    
75 76
    public void remove() {
76
        featureIDIterator.remove();
77
        refIterator.remove();
77 78
    }
78 79

  
80
    /**
81
     * Returns a Feature for the FeatureReference.
82
     */
83
    protected Feature getFeature(FeatureReference ref) throws DataException {
84
        return ref.getFeature();
85
    }
79 86
}

Also available in: Unified diff