Class FeatureEvent

Object
EventObject
FeatureEvent
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
BatchFeatureEvent

public class FeatureEvent extends EventObject
Represents all events triggered by DataStore instances (typically change events).

The "Source" for FeatureEvents is taken to be a FeatureSource, rather than DataStore. The is due to SimpleFeatureSource having a hold of Transaction information.

DataStore implementations will actually keep the list listeners sorted by TypeName, and can report FeatureWriter modifications as required (by filtering the Listener list by typeName and Transaction).

The Transaction.commit() operation will also need to provide notification, this shows up as a CHANGE event; with a bit more detail being available in the subclass BatchFeatureEvent.

Since:
GeoTools 2.0
See Also:
  • Field Details

    • FEATURES_REMOVED

      public static final int FEATURES_REMOVED
      Event type constant denoting the removal of a feature.

      This EventType is used when FeatureWriter.remove() is called. This action represents a Feature being removed from the DataStore.

      The FeatureWriter making the modification will need to check that typeName it is modifing matches the FeatureSource.getSchema().getTypeName() before sending notification to any listeners on the FeatureSource.

      If the FeatureWriter is opperating against a Transaction it will need ensure that to check the FeatureSource.getTransaction() for a match before sending notification to any listeners on the FeatureSource.

      FeatureEvent.getBounds() should reflect the the Bounding Box of the removed Features.

      See Also:
    • type

      protected FeatureEvent.Type type
      Indicates one of Type.ADDED, Type.REMOVED, Type.CHANGED
    • bounds

      protected ReferencedEnvelope bounds
      Indicates the bounds in which the modification occurred.

      This value is allowed to by null if this information is not known.

    • featureSource

      protected FeatureSource featureSource
      The FeatureSource broadcasting the event.

      Please note when several FeatureSources are operating on different Transactions this value will not always line up with original FeatureSource represented by Event.getSource().

    • filter

      protected Filter filter
      Filter used to indicate what content has changed.

      This is often an Id filter.

  • Constructor Details

    • FeatureEvent

      public FeatureEvent(FeatureEvent origional)
      Makes a deep copy of the provided event.
    • FeatureEvent

      public FeatureEvent(Object source, FeatureEvent.Type type, ReferencedEnvelope bounds)
      Constructs a new FeatureEvent.
      Parameters:
      source - The writer or feature store that fired the event
      type - One of FEATURE_CHANGED, FEATURE_REMOVED or FEATURE_ADDED
      bounds - The area modified by this change
    • FeatureEvent

      public FeatureEvent(Object source, FeatureEvent.Type type, ReferencedEnvelope bounds, Filter filter)
      Constructs a new FeatureEvent.
      Parameters:
      source - The writer or feature store that fired the event
      type - One of FEATURE_CHANGED, FEATURE_REMOVED or FEATURE_ADDED
      bounds - The area modified by this change
  • Method Details

    • getFeatureSource

      public FeatureSource<? extends FeatureType,? extends Feature> getFeatureSource()
      Provides access to the SimpleFeatureSource which fired the event.
      Returns:
      The SimpleFeatureSource which was the event's source.
    • setFeatureSource

      public void setFeatureSource(FeatureSource featureSource)
    • getEventType

      public int getEventType()
      Provides information on the type of change that has occured. Possible types are: add, remove, change
      Returns:
      an int which must be one of FEATURES_ADDED, FEATURES_REMOVED, FEATURES_CHANGED
    • getType

      public FeatureEvent.Type getType()
      Provides information on the type of change that has occurred. Possible types are: add, remove, change
      Returns:
      Type
    • getBounds

      public ReferencedEnvelope getBounds()
      Provides access to the area modified (if known).
      Returns:
      A bounding box of the modifications or null if unknown.
    • getFilter

      public Filter getFilter()
      Filter describing the content that was changed.
      Returns:
      A filter that can be used to check if any cached content you are keeping needs to be updated, or Filter.INCLUDES if unknown.