com.vividsolutions.jump.feature
Class FeatureCollectionWrapper

java.lang.Object
  extended by com.vividsolutions.jump.feature.FeatureCollectionWrapper
All Implemented Interfaces:
FeatureCollection
Direct Known Subclasses:
CachingFeatureCollection, IndexedFeatureCollection, ObservableFeatureCollection, OneItemFeatureCollection

public abstract class FeatureCollectionWrapper
extends java.lang.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 Summary
FeatureCollectionWrapper(FeatureCollection fc)
          Constructs a FeatureCollectionWrapper that delegates to the given FeatureCollection.
 
Method Summary
 void add(Feature feature)
          Adds a feature to this collection.
 void addAll(java.util.Collection features)
          Adds multiple features to this collection.
 void checkNotWrappingSameClass()
          Throws an AssertionFailedException if this FeatureCollectionWrapper wraps (directly or indirectly) another FeatureCollectionWrapper having the same class (or descendant class thereof).
 void clear()
          Removes all features from this collection.
 com.vividsolutions.jts.geom.Envelope getEnvelope()
          Returns the bounds of this collection.
 java.util.List getFeatures()
          Returns an unmodifiable List of the features in this collection
 FeatureSchema getFeatureSchema()
          Returns information about this FeatureCollection
 FeatureCollection getUltimateWrappee()
          Returns the non-wrapper FeatureCollection wrapped by this wrapper and possibly by other wrappers in-between.
 FeatureCollection getWrappee()
          Returns the FeatureCollection that this wrapper delegates to (possibly another FeatureCollectionWrapper).
 boolean hasWrapper(java.lang.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).
 boolean isEmpty()
          Returns whether this collection has no features.
 java.util.Iterator iterator()
          Returns an Iterator over the features
 java.util.List query(com.vividsolutions.jts.geom.Envelope envelope)
          A quick search for features, using an envelope comparison.
 java.util.Collection remove(com.vividsolutions.jts.geom.Envelope env)
          Removes the features which intersect the given envelope
 void remove(Feature feature)
          Removes a feature from this collection.
 void removeAll(java.util.Collection features)
          Removes multiple features from this collection.
 int size()
          Returns the number of features in this collection.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FeatureCollectionWrapper

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

Method Detail

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:
getWrappee()

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 java.util.Collection remove(com.vividsolutions.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(java.lang.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()
Returns the FeatureCollection that this wrapper delegates to (possibly another FeatureCollectionWrapper).

See Also:
getUltimateWrappee()

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 com.vividsolutions.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 java.util.List 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 java.util.Iterator iterator()
Description copied from interface: FeatureCollection
Returns an Iterator over the features

Specified by:
iterator in interface FeatureCollection
Returns:
an Iterator over the features

query

public java.util.List query(com.vividsolutions.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(java.util.Collection 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(java.util.Collection 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