Class AbstractMappingFeatureIterator

Object
AbstractMappingFeatureIterator
All Implemented Interfaces:
Closeable, AutoCloseable, Iterator<Feature>, IMappingFeatureIterator, FeatureIterator<Feature>
Direct Known Subclasses:
DataAccessMappingFeatureIterator

public abstract class AbstractMappingFeatureIterator extends Object implements IMappingFeatureIterator
Base class for several MappingFeatureImplementation's.
Author:
Russell Petty (GeoScience Victoria)
  • Field Details

    • LOGGER

      protected static final Logger LOGGER
      The logger for the filter module.
    • GEOMETRY_FACTORY

      public static final GeometryFactory GEOMETRY_FACTORY
    • filterFac

      protected FilterFactory filterFac
    • ftf

      protected FeatureTypeFactory ftf
    • MULTI_VALUE_TYPE

      public static final String MULTI_VALUE_TYPE
      Key value for Attribute userData Map for indicating the presence of a multi value classifier.
      See Also:
    • UNBOUNDED_MULTI_VALUE

      public static final String UNBOUNDED_MULTI_VALUE
      Value for Attribute userData Map for indicating an anonymous unbounded sequence classifier.
      See Also:
    • RESOLVE_TIMEOUT_POLL_INTERVAL

      public static final long RESOLVE_TIMEOUT_POLL_INTERVAL
      Milliseconds between polls of resolver thread.
      See Also:
    • mapping

      protected FeatureTypeMapping mapping
      The mappings for the source and target schemas
    • selectedMapping

      protected List<AttributeMapping> selectedMapping
      Mappings after Property Selection is applied
    • selectedProperties

      protected Map<AttributeMapping,List<PropertyName>> selectedProperties
      Selected Properties for Feature Chaining
    • includeMandatory

      protected boolean includeMandatory
    • attf

      protected FeatureFactory attf
      Factory used to create the target feature and attributes
    • store

      protected AppSchemaDataAccess store
    • xpathAttributeBuilder

      protected final XPath xpathAttributeBuilder
    • namespaceAwareFilterFactory

      protected FilterFactory namespaceAwareFilterFactory
    • requestMaxFeatures

      protected final int requestMaxFeatures
      maxFeatures restriction value as provided by query. After the data query has run, *this* limit is also applied to the result.
    • dataMaxFeatures

      protected final int dataMaxFeatures
      maximum number of features to request when running the data(base?) query. For denormalised data sources, this neesd to be be Query.DEFAULT_MAX to trigger a full table scan. In all other cases it will be the same value as requestMaxFeatures
    • featureCounter

      protected int featureCounter
      counter to ensure maxFeatures is not exceeded
    • namespaces

      protected NamespaceSupport namespaces
    • resolveDepth

      protected int resolveDepth
    • resolveTimeOut

      protected Integer resolveTimeOut
    • transaction

      protected Transaction transaction
    • query

      protected Query query
  • Constructor Details

  • Method Details

    • getTransaction

      public Transaction getTransaction()
    • remove

      public void remove()
      Shall not be called, just throws an UnsupportedOperationException
      Specified by:
      remove in interface Iterator<Feature>
    • close

      public void close()
      Closes the underlying FeatureIterator
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface FeatureIterator<Feature>
    • extractIdForAttribute

      protected abstract String extractIdForAttribute(Expression idExpression, Object sourceInstance)
      Based on the set of xpath expression/id extracting expression, finds the ID for the attribute idExpression from the source complex attribute.
      Parameters:
      idExpression - the location path of the attribute to be created, for which to obtain the id by evaluating the corresponding org.geotools.filter.Expression from sourceInstance.
      sourceInstance - a complex attribute which is the source of the mapping.
      Returns:
      the ID to be applied to a new attribute instance addressed by attributeXPath , or null if there is no an id mapping for that attribute.
    • getUnrolledQuery

      protected Query getUnrolledQuery(Query query)
      Return a query appropriate to its underlying feature source.
      Parameters:
      query - the original query against the output schema
      Returns:
      a query appropriate to be executed over the underlying feature source.
    • isHasNextCalled

      protected boolean isHasNextCalled()
    • setHasNextCalled

      protected void setHasNextCalled(boolean hasNextCalled)
    • next

      public Feature next()
      Return next feature.
      Specified by:
      next in interface FeatureIterator<Feature>
      Specified by:
      next in interface Iterator<Feature>
      Returns:
      The next Feature
      See Also:
    • getClientProperties

      protected Map<Name,Expression> getClientProperties(Property attribute) throws DataSourceException
      Throws:
      DataSourceException
    • referenceToIdentifier

      protected static String referenceToIdentifier(String reference)
    • setAttributeContent

      protected Attribute setAttributeContent(Attribute target, XPathUtil.StepList xpath, Object value, String id, AttributeType targetNodeType, boolean isXlinkRef, Expression sourceExpression, Object source, Map<Name,Expression> clientProperties, boolean ignoreXlinkHref)
    • setClientProperties

      protected void setClientProperties(Attribute target, Object source, Map<Name,Expression> clientProperties)
    • setGeometryUserData

      protected void setGeometryUserData(Attribute target, Map<Name,Object> targetAttributes)
    • closeSourceFeatures

      protected abstract void closeSourceFeatures()
    • getSourceFeatureIterator

      protected abstract FeatureIterator<? extends Feature> getSourceFeatureIterator()
    • initialiseSourceFeatures

      protected abstract void initialiseSourceFeatures(FeatureTypeMapping mapping, Query query, CoordinateReferenceSystem crs) throws IOException
      Throws:
      IOException
    • unprocessedFeatureExists

      protected abstract boolean unprocessedFeatureExists()
    • sourceFeatureIteratorHasNext

      protected abstract boolean sourceFeatureIteratorHasNext()
    • isNextSourceFeatureNull

      protected abstract boolean isNextSourceFeatureNull()
    • populateFeatureData

      protected abstract Feature populateFeatureData(String id) throws IOException
      Throws:
      IOException
    • getValue

      protected abstract Object getValue(Expression expression, Object sourceFeature)
    • isSourceFeatureIteratorNull

      protected abstract boolean isSourceFeatureIteratorNull()
    • computeNext

      protected abstract Feature computeNext() throws IOException
      Throws:
      IOException
    • hasNext

      public abstract 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 FeatureIterator<Feature>
      Specified by:
      hasNext in interface Iterator<Feature>
      Returns:
      true if more Features exist, false otherwise.