org.geotools.feature
Class FeatureCollectionIteration

java.lang.Object
  extended byorg.geotools.feature.FeatureCollectionIteration
Direct Known Subclasses:
FilteringIteration

public class FeatureCollectionIteration
extends java.lang.Object

The FeatureCollectionIteration provides a depth first traversal of a FeatureCollection which will call the provided call-back Handler. Because of the complex nature of Features, which may have other Features (or even a collection of Features) as attributes, the handler is repsonsible for maintaining its own state as to where in the traversal it is recieving events from. Many handlers will not need to worry about state.

Implementation Notes: The depth first visitation is implemented through recursion. The limits to recursion depending on the settings in the JVM, but some tests show a 2 argument recursive having a limit of ~50000 method calls with a stack size of 512k (the standard setting).

Author:
Ian Schneider, USDA-ARS, Chris Holmes, TOPP

Nested Class Summary
static interface FeatureCollectionIteration.Handler
          A callback handler for the iteration of the contents of a FeatureCollection.
 
Field Summary
protected  FeatureCollectionIteration.Handler handler
          A callback handler for the iteration of the contents of a FeatureCollection.
 
Constructor Summary
FeatureCollectionIteration(FeatureCollectionIteration.Handler handler, FeatureCollection collection)
          Create a new FeatureCollectionIteration with the given handler and collection.
 
Method Summary
 void iterate()
          Start the iteration.
protected  void iterate(java.util.Iterator iterator)
          Perform the actual iteration on the Iterator which is provided.
static void iteration(FeatureCollectionIteration.Handler handler, FeatureCollection collection)
          A convienience method for obtaining a new iteration and calling iterate.
protected  void walker(Feature feature)
          Perform the visitation of an individual Feature.
protected  void walker(FeatureCollection collection)
          Perform the iterative behavior on the given collection.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

handler

protected final FeatureCollectionIteration.Handler handler
A callback handler for the iteration of the contents of a FeatureCollection.

Constructor Detail

FeatureCollectionIteration

public FeatureCollectionIteration(FeatureCollectionIteration.Handler handler,
                                  FeatureCollection collection)
                           throws java.lang.NullPointerException
Create a new FeatureCollectionIteration with the given handler and collection.

Parameters:
handler - The handler to perform operations on this iteration.
collection - The collection to iterate over.
Throws:
java.lang.NullPointerException - If handler or collection are null.
Method Detail

iteration

public static void iteration(FeatureCollectionIteration.Handler handler,
                             FeatureCollection collection)
A convienience method for obtaining a new iteration and calling iterate.

Parameters:
handler - The handler to perform operations on this iteration.
collection - The collection to iterate over.

iterate

public void iterate()
Start the iteration.


walker

protected void walker(FeatureCollection collection)
Perform the iterative behavior on the given collection. This will alert the handler with a handleFeatureCollection call, followed by an iterate(), followed by a handler.endFeatureCollection() call.

Parameters:
collection - The collection to iterate upon.

iterate

protected void iterate(java.util.Iterator iterator)
Perform the actual iteration on the Iterator which is provided.

Parameters:
iterator - The Iterator to iterate upon.

walker

protected void walker(Feature feature)
Perform the visitation of an individual Feature.

Parameters:
feature - The Feature to explore.


Copyright © GeoTools. All Rights Reserved.