Class FeatureCollectionWrapper

java.lang.Object
com.vividsolutions.jump.feature.FeatureCollectionWrapper
All Implemented Interfaces:
FeatureCollection, Iterable<Feature>
Direct Known Subclasses:
CachingFeatureCollection, IndexedFeatureCollection, ObservableFeatureCollection, OneItemFeatureCollection

public abstract class FeatureCollectionWrapper extends Object implements FeatureCollection
Delegates to another instance of FeatureCollection. A useful means of overriding the behaviour of a FeatureCollection dynamically, at run-time (i.e. without subclassing).
  • Constructor Details

    • FeatureCollectionWrapper

      public FeatureCollectionWrapper(FeatureCollection fc)
      Constructs a FeatureCollectionWrapper that delegates to the given FeatureCollection.
  • Method Details

    • getUltimateWrappee

      public FeatureCollection getUltimateWrappee()
      Returns the non-wrapper FeatureCollection wrapped by this wrapper and possibly by other wrappers in-between. Intended to get at the "real" FeatureCollection underneath several layers of FeatureCollectionWrappers.
      See Also:
    • checkNotWrappingSameClass

      public void checkNotWrappingSameClass()
      Throws an AssertionFailedException if this FeatureCollectionWrapper wraps (directly or indirectly) another FeatureCollectionWrapper having the same class (or descendant class thereof). A consistency check that is useful for some FeatureCollectionWrapper implementations.
    • remove

      public Collection<Feature> remove(org.locationtech.jts.geom.Envelope env)
      Description copied from interface: FeatureCollection
      Removes the features which intersect the given envelope
      Specified by:
      remove in interface FeatureCollection
      Returns:
      the removed features
    • hasWrapper

      public boolean hasWrapper(Class c)
      Returns whether this FeatureCollectionWrapper (or a FeatureCollectionWrapper that it wraps, directly or indirectly) is an instance of the given class (or one of its descendants).
    • getWrappee

      public FeatureCollection getWrappee(Class c)
      Return the wrapper matching the given class or null, if there is none.
      Parameters:
      c - the Class of the wrapper we are looking for
      Returns:
      a wrapper of Class c
    • getWrappee

      public FeatureCollection getWrappee()
      Returns the FeatureCollection that this wrapper delegates to (possibly another FeatureCollectionWrapper).
      See Also:
    • getFeatureSchema

      public FeatureSchema getFeatureSchema()
      Description copied from interface: FeatureCollection
      Returns information about this FeatureCollection
      Specified by:
      getFeatureSchema in interface FeatureCollection
      Returns:
      the types of the attributes of the features in this collection
    • getEnvelope

      public org.locationtech.jts.geom.Envelope getEnvelope()
      Description copied from interface: FeatureCollection
      Returns the bounds of this collection.
      Specified by:
      getEnvelope in interface FeatureCollection
      Returns:
      the smallest Envelope enclosing all the Features in this collection
    • size

      public int size()
      Description copied from interface: FeatureCollection
      Returns the number of features in this collection.
      Specified by:
      size in interface FeatureCollection
      Returns:
      the number of features in this collection
    • isEmpty

      public boolean isEmpty()
      Description copied from interface: FeatureCollection
      Returns whether this collection has no features.
      Specified by:
      isEmpty in interface FeatureCollection
      Returns:
      whether or not the size of this collection is 0
    • getFeatures

      public List<Feature> getFeatures()
      Description copied from interface: FeatureCollection
      Returns an unmodifiable List of the features in this collection
      Specified by:
      getFeatures in interface FeatureCollection
      Returns:
      a read-only view of all the features
    • iterator

      public Iterator<Feature> iterator()
      Description copied from interface: FeatureCollection
      Returns an Iterator over the features
      Specified by:
      iterator in interface FeatureCollection
      Specified by:
      iterator in interface Iterable<Feature>
      Returns:
      an Iterator over the features
    • query

      public List<Feature> query(org.locationtech.jts.geom.Envelope envelope)
      Description copied from interface: FeatureCollection
      A quick search for features, using an envelope comparison.
      Specified by:
      query in interface FeatureCollection
      Parameters:
      envelope - the envelope to query against
      Returns:
      features whose envelopes intersect the given envelope
    • add

      public void add(Feature feature)
      Description copied from interface: FeatureCollection
      Adds a feature to this collection.
      Specified by:
      add in interface FeatureCollection
      Parameters:
      feature - a Feature to add to the end of this collection
    • remove

      public void remove(Feature feature)
      Description copied from interface: FeatureCollection
      Removes a feature from this collection.
      Specified by:
      remove in interface FeatureCollection
      Parameters:
      feature - a Feature to remove from this collection
    • addAll

      public void addAll(Collection<Feature> features)
      Description copied from interface: FeatureCollection
      Adds multiple features to this collection. To be preferred over #add for adding multiple features, because in some systems (like the JUMP Workbench) fewer events will be fired.
      Specified by:
      addAll in interface FeatureCollection
    • removeAll

      public void removeAll(Collection<Feature> features)
      Description copied from interface: FeatureCollection
      Removes multiple features from this collection. To be preferred over #remove for removing multiple features, because in some systems (like the JUMP Workbench) fewer events will be fired.
      Specified by:
      removeAll in interface FeatureCollection
    • clear

      public void clear()
      Description copied from interface: FeatureCollection
      Removes all features from this collection.
      Specified by:
      clear in interface FeatureCollection
    • getFeatureCollection

      protected FeatureCollection getFeatureCollection()
    • setFeatureCollection

      protected void setFeatureCollection(FeatureCollection featureCollection)