org.geotools.data.complex
Class FilteringMappingFeatureIterator

java.lang.Object
  extended by org.geotools.data.complex.AbstractMappingFeatureIterator
      extended by org.geotools.data.complex.DataAccessMappingFeatureIterator
          extended by org.geotools.data.complex.FilteringMappingFeatureIterator
All Implemented Interfaces:
java.util.Iterator<org.opengis.feature.Feature>, IMappingFeatureIterator, FeatureIterator<org.opengis.feature.Feature>

public class FilteringMappingFeatureIterator
extends DataAccessMappingFeatureIterator

An extension to DataAccessMappingFeatureIterator where filter is present. Since join query between 2 or more tables isn't supported, the only way we can query nested features is by applying the filter per simple feature (database row). This is done in hasNext().

Author:
Rini Angreani, CSIRO Earth Science and Resource Engineering

Field Summary
protected  java.util.ListIterator<org.opengis.feature.Feature> listFeatureIterator
           
 
Fields inherited from class org.geotools.data.complex.DataAccessMappingFeatureIterator
curSrcFeature, mappedSource, reprojection, sourceFeatures
 
Fields inherited from class org.geotools.data.complex.AbstractMappingFeatureIterator
attf, featureCounter, featureFidMapping, LOGGER, mapping, maxFeatures, namespaceAwareFilterFactory, namespaces, store, XLINK_HREF_NAME, xpathAttributeBuilder
 
Constructor Summary
FilteringMappingFeatureIterator(AppSchemaDataAccess store, FeatureTypeMapping mapping, Query query, org.opengis.filter.Filter filter)
           
 
Method Summary
protected  void closeSourceFeatures()
           
protected  java.util.Iterator<org.opengis.feature.Feature> getSourceFeatureIterator()
           
 boolean hasNext()
          Return true if there are more features.
protected  void initialiseSourceFeatures(FeatureTypeMapping mapping, Query query)
           
protected  void setNextFeature(java.lang.String fId, java.util.ArrayList<org.opengis.feature.Feature> features)
           
 
Methods inherited from class org.geotools.data.complex.DataAccessMappingFeatureIterator
computeNext, extractIdForAttribute, extractIdForFeature, extractIdForFeature, flagNextFeature, getValue, getValues, isByReference, isNextFeatureSet, isNextSourceFeatureNull, isSourceFeatureIteratorNull, populateFeatureData, setAttributeValue, setClientProperties, setXlinkReference, sourceFeatureIteratorHasNext, unprocessedFeatureExists
 
Methods inherited from class org.geotools.data.complex.AbstractMappingFeatureIterator
close, getUnrolledQuery, isHasNextCalled, next, remove, setGeometry, setHasNextCalled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

listFeatureIterator

protected java.util.ListIterator<org.opengis.feature.Feature> listFeatureIterator
Constructor Detail

FilteringMappingFeatureIterator

public FilteringMappingFeatureIterator(AppSchemaDataAccess store,
                                       FeatureTypeMapping mapping,
                                       Query query,
                                       org.opengis.filter.Filter filter)
                                throws java.io.IOException
Throws:
java.io.IOException
Method Detail

initialiseSourceFeatures

protected void initialiseSourceFeatures(FeatureTypeMapping mapping,
                                        Query query)
                                 throws java.io.IOException
Overrides:
initialiseSourceFeatures in class DataAccessMappingFeatureIterator
Throws:
java.io.IOException

closeSourceFeatures

protected void closeSourceFeatures()
Overrides:
closeSourceFeatures in class DataAccessMappingFeatureIterator

getSourceFeatureIterator

protected java.util.Iterator<org.opengis.feature.Feature> getSourceFeatureIterator()
Overrides:
getSourceFeatureIterator in class DataAccessMappingFeatureIterator

hasNext

public boolean hasNext()
Description copied from class: AbstractMappingFeatureIterator
Return true if there are more features.

Specified by:
hasNext in interface java.util.Iterator<org.opengis.feature.Feature>
Specified by:
hasNext in interface FeatureIterator<org.opengis.feature.Feature>
Overrides:
hasNext in class DataAccessMappingFeatureIterator
Returns:
true if more Features exist, false otherwise.
See Also:
Iterator.hasNext()

setNextFeature

protected void setNextFeature(java.lang.String fId,
                              java.util.ArrayList<org.opengis.feature.Feature> features)
                       throws java.io.IOException
Overrides:
setNextFeature in class DataAccessMappingFeatureIterator
Throws:
java.io.IOException


Copyright © 1996-2010 Geotools. All Rights Reserved.