org.geotools.data.complex
Class MappingFeatureCollection

java.lang.Object
  extended by org.geotools.data.complex.MappingFeatureCollection
All Implemented Interfaces:
FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>

public class MappingFeatureCollection
extends java.lang.Object
implements FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>

FeatureCollection for a MappingFeatureIterator.

Since:
2.6
Version:
$Id: MappingFeatureCollection.java 34793 2010-01-15 08:08:17Z ang05a $
Author:
Ben Caradoc-Davies, CSIRO Exploration and Mining

Constructor Summary
MappingFeatureCollection(AppSchemaDataAccess store, FeatureTypeMapping mapping, Query query)
           
 
Method Summary
 void accepts(org.opengis.feature.FeatureVisitor visitor, org.opengis.util.ProgressListener progress)
          Not a supported operation.
 boolean add(org.opengis.feature.Feature obj)
          Not a supported operation.
 boolean addAll(java.util.Collection<? extends org.opengis.feature.Feature> collection)
          Add all the objects to the collection.
 boolean addAll(FeatureCollection<? extends org.opengis.feature.type.FeatureType,? extends org.opengis.feature.Feature> resource)
           
 void addListener(CollectionListener listener)
          Adds a listener for collection events.
 void clear()
           
 void close(FeatureIterator<org.opengis.feature.Feature> close)
          Clean up after any resources associated with this FeatureIterator in a manner similar to JDO collections.
 void close(java.util.Iterator<org.opengis.feature.Feature> close)
          Clean up after any resources associated with this itterator in a manner similar to JDO collections.
 boolean contains(java.lang.Object o)
           
 boolean containsAll(java.util.Collection<?> o)
           
 FeatureIterator<org.opengis.feature.Feature> features()
          Obtain a FeatureIterator of the Features within this collection.
 ReferencedEnvelope getBounds()
          Stolen from ReprojectFeatureResults.
 java.lang.String getID()
          ID used when serializing to GML
 org.opengis.feature.type.FeatureType getSchema()
          The schema for the child features of this collection.
 boolean isEmpty()
           
 java.util.Iterator<org.opengis.feature.Feature> 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 o)
           
 boolean removeAll(java.util.Collection<?> c)
           
 void removeListener(CollectionListener listener)
          Removes a listener for collection events.
 boolean retainAll(java.util.Collection<?> c)
           
 int size()
           
 FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature> sort(org.opengis.filter.sort.SortBy order)
          collection.subCollection( myFilter ).sort( {"foo","bar"} ); collection.subCollection( myFilter ).sort( "bar" ).sort("foo")
 FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature> subCollection(org.opengis.filter.Filter filter)
          FeatureCollection "view" indicated by provided filter.
 java.lang.Object[] toArray()
           
<O> O[]
toArray(O[] a)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MappingFeatureCollection

public MappingFeatureCollection(AppSchemaDataAccess store,
                                FeatureTypeMapping mapping,
                                Query query)
Method Detail

accepts

public void accepts(org.opengis.feature.FeatureVisitor visitor,
                    org.opengis.util.ProgressListener progress)
             throws java.io.IOException
Not a supported operation.

Specified by:
accepts in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
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
See Also:
FeatureCollection.accepts(org.opengis.feature.FeatureVisitor, org.opengis.util.ProgressListener)

add

public boolean add(org.opengis.feature.Feature obj)
Not a supported operation.

Specified by:
add in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
Returns:
true of the element was added
See Also:
FeatureCollection.add(org.opengis.feature.Feature)

addAll

public boolean addAll(java.util.Collection<? extends org.opengis.feature.Feature> collection)
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.type.FeatureType,org.opengis.feature.Feature>
See Also:
Collection.addAll(Collection)

addAll

public boolean addAll(FeatureCollection<? extends org.opengis.feature.type.FeatureType,? extends org.opengis.feature.Feature> resource)
Specified by:
addAll in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
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.type.FeatureType,org.opengis.feature.Feature>
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.type.FeatureType,org.opengis.feature.Feature>
See Also:
Collection.clear()

close

public void close(FeatureIterator<org.opengis.feature.Feature> close)
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.type.FeatureType,org.opengis.feature.Feature>

close

public void close(java.util.Iterator<org.opengis.feature.Feature> close)
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.type.FeatureType,org.opengis.feature.Feature>

contains

public boolean contains(java.lang.Object o)
Specified by:
contains in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
See Also:
Collection.contains(Object)

containsAll

public boolean containsAll(java.util.Collection<?> o)
Specified by:
containsAll in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
See Also:
Collection.containsAll(Collection)

features

public FeatureIterator<org.opengis.feature.Feature> 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.type.FeatureType,org.opengis.feature.Feature>
Returns:
A FeatureIterator.

getBounds

public ReferencedEnvelope getBounds()
Stolen from ReprojectFeatureResults.

Specified by:
getBounds in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
Returns:
An Envelope containing the total bounds of this collection.
See Also:
FeatureCollection.getBounds()

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.type.FeatureType,org.opengis.feature.Feature>

getSchema

public org.opengis.feature.type.FeatureType 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.type.FeatureType,org.opengis.feature.Feature>
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.type.FeatureType,org.opengis.feature.Feature>
See Also:
Collection.isEmpty()

iterator

public java.util.Iterator<org.opengis.feature.Feature> 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.type.FeatureType,org.opengis.feature.Feature>
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.type.FeatureType,org.opengis.feature.Feature>

remove

public boolean remove(java.lang.Object o)
Specified by:
remove in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
See Also:
Collection.remove(Object)

removeAll

public boolean removeAll(java.util.Collection<?> c)
Specified by:
removeAll in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
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.type.FeatureType,org.opengis.feature.Feature>
Parameters:
listener - The listener to remove
Throws:
java.lang.NullPointerException - If the listener is null.

retainAll

public boolean retainAll(java.util.Collection<?> c)
Specified by:
retainAll in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
See Also:
Collection.retainAll(Collection)

size

public int size()
Specified by:
size in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
See Also:
Collection.size()

sort

public FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature> sort(org.opengis.filter.sort.SortBy order)
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.type.FeatureType,org.opengis.feature.Feature>
Returns:
FeatureCollection sorted in the indicated order

subCollection

public FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature> 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.type.FeatureType,org.opengis.feature.Feature>
Returns:
FeatureCollection identified as subset.
See Also:
FeatureList

toArray

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

toArray

public <O> O[] toArray(O[] a)
Specified by:
toArray in interface FeatureCollection<org.opengis.feature.type.FeatureType,org.opengis.feature.Feature>
See Also:
Collection.toArray(Object[])


Copyright © 1996-2010 Geotools. All Rights Reserved.