Revision 23928 branches/v2_0_0_prep/libraries/libFMap_data/src/org/gvsig/fmap/data/feature/impl/FeatureIteratorFacade.java
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