org.geotools.data.complex
Class FilteringMappingFeatureIterator

Object
  extended by AbstractMappingFeatureIterator
      extended by DataAccessMappingFeatureIterator
          extended by FilteringMappingFeatureIterator
All Implemented Interfaces:
Closeable, Iterator<Feature>, IMappingFeatureIterator, FeatureIterator<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
 
Fields inherited from class DataAccessMappingFeatureIterator
curSrcFeature, foreignIds, mappedSource, reprojection, sourceFeatures, targetFeature
 
Fields inherited from class AbstractMappingFeatureIterator
attf, dataMaxFeatures, featureCounter, ftf, includeMandatory, LOGGER, mapping, namespaceAwareFilterFactory, namespaces, requestMaxFeatures, RESOLVE_TIMEOUT_POLL_INTERVAL, resolveDepth, resolveTimeOut, selectedMapping, selectedProperties, store, XLINK_HREF_NAME, xpathAttributeBuilder
 
Constructor Summary
FilteringMappingFeatureIterator(AppSchemaDataAccess store, FeatureTypeMapping mapping, Query query, Query unrolledQuery, Filter filter)
           
FilteringMappingFeatureIterator(AppSchemaDataAccess store, FeatureTypeMapping mapping, Query query, Query unrolledQuery, Filter filter, CoordinateReferenceSystem crs)
           
 
Method Summary
protected  void closeSourceFeatures()
           
protected  String getNextFeatureId()
           
protected  List<Feature> getSources(String id)
          Get all source features of the provided id.
 boolean hasNext()
          Does another Feature exist in this Iteration.
protected  void initialiseSourceFeatures(FeatureTypeMapping mapping, Query query, CoordinateReferenceSystem crs)
           
 
Methods inherited from class DataAccessMappingFeatureIterator
checkForeignIdValues, checkForeignIdValues, cleanEmptyElements, computeNext, extractIdForAttribute, extractIdForFeature, getForeignIdValues, getIdValues, getSourceFeatureIterator, getValue, getValues, isByReference, isNextSourceFeatureNull, isReprojectionCrsEqual, isSourceFeatureIteratorNull, peekNextValue, peekValue, populateFeatureData, setAttributeValue, setForeignIds, setListFilter, setNextFeature, setXlinkReference, skip, skipNestedMapping, skipTopElement, sourceFeatureIteratorHasNext, unprocessedFeatureExists
 
Methods inherited from class AbstractMappingFeatureIterator
close, getClientProperties, getDataMaxFeatures, getRequestMaxFeatures, getUnrolledQuery, isHasNextCalled, next, referenceToIdentifier, remove, setAttributeContent, setClientProperties, setGeometryUserData, setHasNextCalled
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FilteringMappingFeatureIterator

public FilteringMappingFeatureIterator(AppSchemaDataAccess store,
                                       FeatureTypeMapping mapping,
                                       Query query,
                                       Query unrolledQuery,
                                       Filter filter)
                                throws IOException
Throws:
IOException

FilteringMappingFeatureIterator

public FilteringMappingFeatureIterator(AppSchemaDataAccess store,
                                       FeatureTypeMapping mapping,
                                       Query query,
                                       Query unrolledQuery,
                                       Filter filter,
                                       CoordinateReferenceSystem crs)
                                throws IOException
Throws:
IOException
Method Detail

initialiseSourceFeatures

protected void initialiseSourceFeatures(FeatureTypeMapping mapping,
                                        Query query,
                                        CoordinateReferenceSystem crs)
                                 throws IOException
Overrides:
initialiseSourceFeatures in class DataAccessMappingFeatureIterator
Throws:
IOException

closeSourceFeatures

protected void closeSourceFeatures()
Overrides:
closeSourceFeatures in class DataAccessMappingFeatureIterator

hasNext

public boolean hasNext()
Description copied from interface: FeatureIterator
Does another Feature exist in this Iteration.

Iterator defin: Returns true if the iteration has more elements. (In other words, returns true if next would return an element rather than throwing an exception.)

Specified by:
hasNext in interface Iterator<Feature>
Specified by:
hasNext in interface FeatureIterator<Feature>
Overrides:
hasNext in class DataAccessMappingFeatureIterator
Returns:
true if more Features exist, false otherwise.

getNextFeatureId

protected String getNextFeatureId()
Overrides:
getNextFeatureId in class DataAccessMappingFeatureIterator

getSources

protected List<Feature> getSources(String id)
                            throws IOException
Description copied from class: DataAccessMappingFeatureIterator
Get all source features of the provided id. This assumes the source features are grouped by id.

Overrides:
getSources in class DataAccessMappingFeatureIterator
Parameters:
id - The feature id
Returns:
list of source features
Throws:
IOException


Copyright © 1996-2014 Geotools. All Rights Reserved.