Class DataFeatureCollection

    • Constructor Detail

      • DataFeatureCollection

        protected DataFeatureCollection()
        Collection based on a generic collection
      • DataFeatureCollection

        protected DataFeatureCollection​(String id)
        Collection based on a generic collection
      • DataFeatureCollection

        protected DataFeatureCollection​(String id,
                                        SimpleFeatureType memberType)
        Subclass must think about what consitructors it needs.
    • Method Detail

      • fireChange

        protected void fireChange​(SimpleFeature[] features,
                                  int type)
        To let listeners know that something has changed.
      • fireChange

        protected void fireChange​(SimpleFeature feature,
                                  int type)
      • fireChange

        protected void fireChange​(Collection coll,
                                  int type)
      • getCount

        public abstract int getCount()
                              throws IOException
        Throws:
        IOException
      • writer

        protected FeatureWriter<SimpleFeatureType,​SimpleFeature> writer()
                                                                       throws IOException
        Subclass may provide an implementation of this method to indicate that read/write support is provided.

        All operations that attempt to modify the "data" will use this method, allowing them to throw an "UnsupportedOperationException" in the same manner as Collections.unmodifiableCollection(Collection c), or just return null.

        Returns:
        the writer, or null if write support is not available
        Throws:
        UnsupportedOperationException - To indicate that write support is not avaiable
        IOException
      • iterator

        public final Iterator<SimpleFeature> iterator()
        Iterator may (or may) not support modification.
      • openIterator

        protected Iterator<SimpleFeature> openIterator()
                                                throws IOException
        Returns a FeatureWriterIterator, or FeatureReaderIterator over content.

        If you have a way to tell that you are readonly please subclass with a less hardcore check - this implementations catches a UnsupportedOpperationsException from wrtier()!

        Returns:
        Iterator, should be closed closeIterator
        Throws:
        IOException
      • close

        public final void close​(Iterator<SimpleFeature> close)
      • closeIterator

        protected void closeIterator​(Iterator<SimpleFeature> close)
                              throws IOException
        Throws:
        IOException
      • purge

        public void purge()
      • isEmpty

        public boolean isEmpty()
        Default implementation based on creating an reader, testing hasNext, and closing.

        For once the Collections API does not give us an escape route, we *have* to check the data.

        Specified by:
        isEmpty in interface FeatureCollection<SimpleFeatureType,​SimpleFeature>
        Returns:
        true if this collection contains no features
      • remove

        public boolean remove​(Object arg0)
      • addAll

        public boolean addAll​(Collection collection)
        Optimized implementation of addAll that recognizes the use of collections obtained with subCollection( filter ).

        This method is constructed by either:

        • Filter OR
        • Removing an extact match of Filter AND
      • removeAll

        public boolean removeAll​(Collection arg0)
      • retainAll

        public boolean retainAll​(Collection arg0)
      • clear

        public void clear()
      • accepts

        public void accepts​(FeatureVisitor visitor,
                            ProgressListener progress)
                     throws IOException
        Description copied from interface: FeatureCollection
        Visit the contents of a feature collection.

        The order of traversal is dependent on the FeatureCollection implementation; some collections are able to make efficient use of an internal index in order to quickly visit features located in the same region.

        Specified by:
        accepts in interface FeatureCollection<SimpleFeatureType,​SimpleFeature>
        Parameters:
        visitor - Closure applied to each feature in turn.
        progress - Used to report progress, may be used to interrupt the operation
        Throws:
        IOException
      • subCollection

        public SimpleFeatureCollection subCollection​(Filter filter)
        Will return an optimized subCollection based on access to the origional FeatureSource.

        The subCollection is constructed by using an AND Filter. For the converse of this opperation please see collection.addAll( Collection ), it has been optimized to be aware of these filter based SubCollections.

        This method is intended in a manner similar to subList, example use: collection.subCollection( myFilter ).clear()

        Specified by:
        subCollection in interface FeatureCollection<SimpleFeatureType,​SimpleFeature>
        Specified by:
        subCollection in interface SimpleFeatureCollection
        Parameters:
        filter - Filter used to determine sub collection.
        Returns:
        SimpleFeatureCollection identified as subset.
        Since:
        GeoTools 2.2, Filter 1.1
        See Also:
        FeatureList
      • sort

        public SimpleFeatureCollection sort​(SortBy order)
        Construct a sorted view of this content.

        Sorts may be combined togther in a stable fashion, in congruence with the Filter 1.1 specification. This method should also be able to handle GeoTools specific sorting through detecting order as a SortBy2 instance.

        Specified by:
        sort in interface FeatureCollection<SimpleFeatureType,​SimpleFeature>
        Specified by:
        sort in interface SimpleFeatureCollection
        Parameters:
        order - Sort order
        Returns:
        FeatureList sorted according to provided order
        Since:
        GeoTools 2.2, Filter 1.1
      • addListener

        public final void addListener​(CollectionListener listener)
                               throws NullPointerException
        Throws:
        NullPointerException
      • removeListener

        public final void removeListener​(CollectionListener listener)
                                  throws NullPointerException
        Throws:
        NullPointerException
      • getSchema

        public SimpleFeatureType getSchema()
        Description copied from interface: FeatureCollection
        The schema for the child feature members of this collection.

        Represents the most general FeatureType in common to all the features in this collection.

        • For a collection backed by a shapefiles (or database tables) the FeatureType returned by getSchema() will complete describe each and every child in the collection.
        • For mixed content FeatureCollections you will need to check the FeatureType of each Feature as it is retrived from the collection
        • The degenerate case returns the "_Feature" FeatureType, where the only thing known is that the contents are Features.
        Specified by:
        getSchema in interface FeatureCollection<SimpleFeatureType,​SimpleFeature>
        Returns:
        FeatureType describing the "common" schema to all child features of this collection