Class AbstractMappingFeatureIterator

    • Field Detail

      • LOGGER

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

        public static final GeometryFactory GEOMETRY_FACTORY
      • XLINK_HREF_NAME

        public static final Name XLINK_HREF_NAME
        Name representation of xlink:href
      • 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:
        Constant Field Values
      • UNBOUNDED_MULTI_VALUE

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

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

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

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

        protected boolean includeMandatory
      • attf

        protected FeatureFactory attf
        Factory used to create the target feature and attributes
      • 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
      • query

        protected Query query
    • Method Detail

      • 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:
        Iterator.next()
      • referenceToIdentifier

        protected static String referenceToIdentifier​(String reference)
      • 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()
      • 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.