org.geotools.data.gen
Class PreGeneralizedFeatureCollection

java.lang.Object
  extended by org.geotools.data.gen.PreGeneralizedFeatureCollection
All Implemented Interfaces:
FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>

public class PreGeneralizedFeatureCollection
extends java.lang.Object
implements FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>

Author:
Christian Mueller Implementation of FeatureCollection for PreGeneralizedSimpleFeature This collection is read only, modifying methods result in UnsupportedOperationException

Field Summary
protected  FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> backendCollection
           
protected  java.lang.String backendGeomPropertyName
           
protected  org.opengis.feature.simple.SimpleFeatureType featureType
           
protected  java.lang.String geomPropertyName
           
protected  int[] indexMapping
           
 
Constructor Summary
PreGeneralizedFeatureCollection(FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> backendCollection, org.opengis.feature.simple.SimpleFeatureType featureType, int[] indexMapping, java.lang.String geomPropertyName, java.lang.String backendGeomPropertyName)
           
 
Method Summary
 void accepts(org.opengis.feature.FeatureVisitor visitor, org.opengis.util.ProgressListener progress)
          Visit the contents of a feature collection.
 boolean add(org.opengis.feature.simple.SimpleFeature arg0)
          Add object to this collection.
 boolean addAll(java.util.Collection arg0)
          Add all the objects to the collection.
 boolean addAll(FeatureCollection arg0)
           
 void addListener(CollectionListener listener)
          Adds a listener for collection events.
 void clear()
           
 void close(FeatureIterator<org.opengis.feature.simple.SimpleFeature> it)
          Clean up after any resources associated with this FeatureIterator in a manner similar to JDO collections.
 void close(java.util.Iterator it)
          Clean up after any resources associated with this itterator in a manner similar to JDO collections.
 boolean contains(java.lang.Object feature)
           
 boolean containsAll(java.util.Collection coll)
           
 FeatureIterator<org.opengis.feature.simple.SimpleFeature> features()
          Obtain a FeatureIterator of the Features within this collection.
 ReferencedEnvelope getBounds()
          Get the total bounds of this collection which is calculated by doing a union of the bounds of each feature inside of it
 java.lang.String getID()
          ID used when serializing to GML
 org.opengis.feature.simple.SimpleFeatureType getSchema()
          The schema for the child features of this collection.
 boolean isEmpty()
           
 java.util.Iterator<org.opengis.feature.simple.SimpleFeature> iterator()
          An iterator over this collection, which must be closed after use.
 void purge()
          Close any outstanding resources released by this resources.
 boolean remove(java.lang.Object arg0)
           
 boolean removeAll(java.util.Collection arg0)
           
 void removeListener(CollectionListener listener)
          Removes a listener for collection events.
 boolean retainAll(java.util.Collection arg0)
           
 int size()
           
 FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> sort(org.opengis.filter.sort.SortBy sortBy)
          collection.subCollection( myFilter ).sort( {"foo","bar"} ); collection.subCollection( myFilter ).sort( "bar" ).sort("foo")
 FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> subCollection(org.opengis.filter.Filter filter)
          FeatureCollection "view" indicated by provided filter.
 java.lang.Object[] toArray()
           
 java.lang.Object[] toArray(java.lang.Object[] arg0)
           
protected  java.lang.UnsupportedOperationException unsupported()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

backendCollection

protected FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> backendCollection

featureType

protected org.opengis.feature.simple.SimpleFeatureType featureType

geomPropertyName

protected java.lang.String geomPropertyName

backendGeomPropertyName

protected java.lang.String backendGeomPropertyName

indexMapping

protected int[] indexMapping
Constructor Detail

PreGeneralizedFeatureCollection

public PreGeneralizedFeatureCollection(FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> backendCollection,
                                       org.opengis.feature.simple.SimpleFeatureType featureType,
                                       int[] indexMapping,
                                       java.lang.String geomPropertyName,
                                       java.lang.String backendGeomPropertyName)
Method Detail

unsupported

protected java.lang.UnsupportedOperationException unsupported()

accepts

public void accepts(org.opengis.feature.FeatureVisitor visitor,
                    org.opengis.util.ProgressListener progress)
             throws java.io.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<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Parameters:
visitor - Closure applied to each feature in turn.
progress - Used to report progress, may be used to interrupt the operation
Throws:
java.io.IOException

add

public boolean add(org.opengis.feature.simple.SimpleFeature arg0)
Description copied from interface: FeatureCollection
Add object to this collection.

This method is often not impelmented for collections produced as the result of a query.

Specified by:
add in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
true of the element was added
See Also:
Collection.add(Object)

addAll

public boolean addAll(java.util.Collection arg0)
Description copied from interface: FeatureCollection
Add all the objects to the collection.

This method is often not implemented for collections produced as the results of a query.

Specified by:
addAll in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.addAll(Collection)

addAll

public boolean addAll(FeatureCollection arg0)
Specified by:
addAll in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
FeatureCollection.addAll(Collection)

addListener

public void addListener(CollectionListener listener)
                 throws java.lang.NullPointerException
Description copied from interface: FeatureCollection
Adds a listener for collection events.

When this collection is backed by live data the event notification will follow the guidelines outlined by FeatureListner.

Specified by:
addListener in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Parameters:
listener - The listener to add
Throws:
java.lang.NullPointerException - If the listener is null.

clear

public void clear()
Specified by:
clear in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.clear()

close

public void close(FeatureIterator<org.opengis.feature.simple.SimpleFeature> it)
Description copied from interface: FeatureCollection
Clean up after any resources associated with this FeatureIterator in a manner similar to JDO collections.

Example (safe) use:

 Iterator iterator = collection.iterator();
 try {
     for( Iterator i=collection.iterator(); i.hasNext();){
          Feature feature = i.hasNext();
          System.out.println( feature.getID() );
     }
 }
 finally {
     collection.close( iterator );
 }
 

Specified by:
close in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>

close

public void close(java.util.Iterator it)
Description copied from interface: FeatureCollection
Clean up after any resources associated with this itterator in a manner similar to JDO collections.

Example (safe) use:

 Iterator iterator = collection.iterator();
 try {
     for( Iterator i=collection.iterator(); i.hasNext();){
          Feature feature = (Feature) i.hasNext();
          System.out.println( feature.getID() );
     }
 }
 finally {
     collection.close( iterator );
 }
 

Specified by:
close in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>

contains

public boolean contains(java.lang.Object feature)
Specified by:
contains in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.contains(Object)

containsAll

public boolean containsAll(java.util.Collection coll)
Specified by:
containsAll in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.containsAll(Collection)

features

public FeatureIterator<org.opengis.feature.simple.SimpleFeature> features()
Description copied from interface: FeatureCollection
Obtain a FeatureIterator of the Features within this collection.

The implementation of Collection must adhere to the rules of fail-fast concurrent modification. In addition (to allow for resource backed collections, the close( Iterator ) method must be called.

This is almost equivalent to:

  • a Type-Safe call to: getAttribute(getFeatureType().getAttributeType(0).getName()).iterator();.
  • A Java 5:Iterator<Feature>

Example (safe) use:

 FeatureIterator iterator=collection.features();
 try {
     while( iterator.hasNext()  ){
          Feature feature = iterator.next();
          System.out.println( feature.getID() );
     }
 }
 finally {
     collection.close( iterator );
 }
 

GML Note: The contents of this iterator are considered to be defined by featureMember tags (and/or the single allowed FeatureMembers tag). Please see getFeatureType for more details.

Specified by:
features in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
A FeatureIterator.

getBounds

public ReferencedEnvelope getBounds()
Description copied from interface: FeatureCollection
Get the total bounds of this collection which is calculated by doing a union of the bounds of each feature inside of it

Specified by:
getBounds in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
An Envelope containing the total bounds of this collection.

getID

public java.lang.String getID()
Description copied from interface: FeatureCollection
ID used when serializing to GML

Specified by:
getID in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>

getSchema

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

There is a difference between getFeatureType() and getSchema()represents the LCD FeatureType that best represents the contents of this collection.

The method getSchema() is named for compatability with the geotools 2.0 API. In the Geotools 2.2 time frame we should be able to replace this method with a careful check of getFeatureType() and its attributes.

Specified by:
getSchema in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
FeatureType describing the "common" schema to all child features of this collection

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.isEmpty()

iterator

public java.util.Iterator<org.opengis.feature.simple.SimpleFeature> iterator()
Description copied from interface: FeatureCollection
An iterator over this collection, which must be closed after use.

Collection is not guaranteed to be ordered in any manner.

The implementation of Collection must adhere to the rules of fail-fast concurrent modification. In addition (to allow for resource backed collections, the close( Iterator ) method must be called.

Example (safe) use:

 Iterator iterator = collection.iterator();
 try {
     while( iterator.hasNext();){
          Feature feature = (Feature) iterator.hasNext();
          System.out.println( feature.getID() );
     }
 }
 finally {
     collection.close( iterator );
 }
 

Specified by:
iterator in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
Iterator

purge

public void purge()
Description copied from interface: FeatureCollection
Close any outstanding resources released by this resources.

This method should be used with great caution, it is however available to allow the use of the ResourceCollection with algorthims that are unaware of the need to close iterators after use.

Example of using a normal Collections utility method:


 Collections.sort( collection );
 collection.purge();
 

Specified by:
purge in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>

remove

public boolean remove(java.lang.Object arg0)
Specified by:
remove in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.remove(Object)

removeAll

public boolean removeAll(java.util.Collection arg0)
Specified by:
removeAll in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.removeAll(Collection)

removeListener

public void removeListener(CollectionListener listener)
                    throws java.lang.NullPointerException
Description copied from interface: FeatureCollection
Removes a listener for collection events.

Specified by:
removeListener in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Parameters:
listener - The listener to remove
Throws:
java.lang.NullPointerException - If the listener is null.

retainAll

public boolean retainAll(java.util.Collection arg0)
Specified by:
retainAll in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.retainAll(Collection)

size

public int size()
Specified by:
size in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.size()

sort

public FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> sort(org.opengis.filter.sort.SortBy sortBy)
Description copied from interface: FeatureCollection
collection.subCollection( myFilter ).sort( {"foo","bar"} ); collection.subCollection( myFilter ).sort( "bar" ).sort("foo")

Specified by:
sort in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
FeatureCollection sorted in the indicated order

subCollection

public FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature> subCollection(org.opengis.filter.Filter filter)
Description copied from interface: FeatureCollection
FeatureCollection "view" indicated by provided filter.

The contents of the returned FeatureCollection are determined by applying the provider Filter to the entire contents of this FeatureCollection. The result is "live" and modifications will be shared.

This method is used cut down on the number of filter based methods required for a useful FeatureCollection construct. The FeatureCollections returned really should be considered as a temporary "view" used to control the range of a removeAll, or modify operation.

Example Use:


 collection.subCollection( filter ).clear();
 
The above recommended use is agreement with the Collections API precident of List.subList( start, end ).

The results of subCollection:

  • are to be considered unordered
  • may be an ordered FeatureList if requested when sortBy is indicated

Specified by:
subCollection in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
Returns:
FeatureCollection identified as subset.
See Also:
FeatureList

toArray

public java.lang.Object[] toArray()
Specified by:
toArray in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.toArray()

toArray

public java.lang.Object[] toArray(java.lang.Object[] arg0)
Specified by:
toArray in interface FeatureCollection<org.opengis.feature.simple.SimpleFeatureType,org.opengis.feature.simple.SimpleFeature>
See Also:
Collection.toArray(Object[])


Copyright © 1996-2010 Geotools. All Rights Reserved.