public abstract class DataFeatureCollection extends Object implements SimpleFeatureCollection
This implementation requires you to implement the following:
This class will implement the 'extra' methods required by FeatureCollection for you (in simple terms based on the FeatureResults API). Anything that is often customised is available to you as a constructor parameters.
Enjoy.
Modifier and Type | Field and Description |
---|---|
protected String |
id
id used when serialized to gml
|
protected List |
listeners
listeners
|
protected SimpleFeatureType |
schema |
Modifier | Constructor and Description |
---|---|
protected |
DataFeatureCollection()
Collection based on a generic collection
|
protected |
DataFeatureCollection(String id)
Collection based on a generic collection
|
protected |
DataFeatureCollection(String id,
SimpleFeatureType memberType)
Subclass must think about what consitructors it needs.
|
Modifier and Type | Method and Description |
---|---|
void |
accepts(FeatureVisitor visitor,
ProgressListener progress)
Visit the contents of a feature collection.
|
boolean |
add(SimpleFeature arg0) |
boolean |
addAll(Collection collection)
Optimized implementation of addAll that recognizes the use of collections obtained with
subCollection( filter ).
|
boolean |
addAll(FeatureCollection resource) |
void |
addListener(CollectionListener listener) |
void |
clear() |
void |
close(FeatureIterator<SimpleFeature> iterator) |
void |
close(Iterator<SimpleFeature> close) |
protected void |
closeIterator(Iterator<SimpleFeature> close) |
boolean |
contains(Object o) |
boolean |
containsAll(Collection<?> collection) |
SimpleFeatureIterator |
features()
SimpleFeatureIterator is entirely based on iterator().
|
protected void |
fireChange(Collection coll,
int type) |
protected void |
fireChange(SimpleFeature[] features,
int type)
To let listeners know that something has changed.
|
protected void |
fireChange(SimpleFeature feature,
int type) |
abstract 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
|
abstract int |
getCount() |
String |
getID()
ID used when serializing to GML
|
SimpleFeatureType |
getSchema()
The schema for the child feature members of this collection.
|
boolean |
isEmpty()
Default implementation based on creating an reader, testing hasNext, and closing.
|
Iterator<SimpleFeature> |
iterator()
Iterator may (or may) not support modification.
|
protected Iterator<SimpleFeature> |
openIterator()
Returns a FeatureWriterIterator, or FeatureReaderIterator over content.
|
void |
purge() |
FeatureReader<SimpleFeatureType,SimpleFeature> |
reader() |
boolean |
remove(Object arg0) |
boolean |
removeAll(Collection arg0) |
void |
removeListener(CollectionListener listener) |
boolean |
retainAll(Collection arg0) |
int |
size()
Default implementation based on getCount() - this may be expensive
|
SimpleFeatureCollection |
sort(SortBy order)
Construct a sorted view of this content.
|
SimpleFeatureCollection |
subCollection(Filter filter)
Will return an optimized subCollection based on access to the origional FeatureSource.
|
Object[] |
toArray() |
<T> T[] |
toArray(T[] array) |
protected FeatureWriter<SimpleFeatureType,SimpleFeature> |
writer()
Subclass may provide an implementation of this method to indicate that read/write support is
provided.
|
protected List listeners
protected String id
protected SimpleFeatureType schema
protected DataFeatureCollection()
protected DataFeatureCollection(String id)
protected DataFeatureCollection(String id, SimpleFeatureType memberType)
protected void fireChange(SimpleFeature[] features, int type)
protected void fireChange(SimpleFeature feature, int type)
protected void fireChange(Collection coll, int type)
public FeatureReader<SimpleFeatureType,SimpleFeature> reader() throws IOException
IOException
public abstract ReferencedEnvelope getBounds()
FeatureCollection
getBounds
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public abstract int getCount() throws IOException
IOException
protected FeatureWriter<SimpleFeatureType,SimpleFeature> writer() throws IOException
All operations that attempt to modify the "data" will use this method, allowing them to throw an "UnsupportedOperationException" in the same manner as Collections.unmodifiableCollection(Collection c), or just return null.
UnsupportedOperationException
- To indicate that write support is not avaiableIOException
public SimpleFeatureIterator features()
So when we implement FeatureCollection.iterator() this will work out of the box.
features
in interface SimpleFeatureCollection
features
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public final Iterator<SimpleFeature> iterator()
protected Iterator<SimpleFeature> openIterator() throws IOException
If you have a way to tell that you are readonly please subclass with a less hardcore check - this implementations catches a UnsupportedOpperationsException from wrtier()!
IOException
public final void close(Iterator<SimpleFeature> close)
protected void closeIterator(Iterator<SimpleFeature> close) throws IOException
IOException
public void close(FeatureIterator<SimpleFeature> iterator)
public int size()
size
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
Collection.size()
public void purge()
public boolean isEmpty()
For once the Collections API does not give us an escape route, we *have* to check the data.
isEmpty
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public boolean contains(Object o)
contains
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
Collection.contains(Object)
public Object[] toArray()
toArray
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
Collection.toArray()
public <T> T[] toArray(T[] array)
toArray
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
Collection.toArray(Object[])
public boolean add(SimpleFeature arg0)
public boolean remove(Object arg0)
public boolean containsAll(Collection<?> collection)
containsAll
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
Collection.containsAll(Collection)
public boolean addAll(Collection collection)
This method is constructed by either:
public boolean addAll(FeatureCollection resource)
public boolean removeAll(Collection arg0)
public boolean retainAll(Collection arg0)
public void clear()
public void accepts(FeatureVisitor visitor, ProgressListener progress) throws IOException
FeatureCollection
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.
accepts
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
visitor
- Closure applied to each feature in turn.progress
- Used to report progress, may be used to interrupt the operationIOException
public SimpleFeatureCollection subCollection(Filter filter)
The subCollection is constructed by using an AND Filter. For the converse of this opperation please see collection.addAll( Collection ), it has been optimized to be aware of these filter based SubCollections.
This method is intended in a manner similar to subList, example use:
collection.subCollection( myFilter ).clear()
subCollection
in interface SimpleFeatureCollection
subCollection
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
filter
- Filter used to determine sub collection.FeatureList
public SimpleFeatureCollection sort(SortBy order)
Sorts may be combined togther in a stable fashion, in congruence with the Filter 1.1 specification. This method should also be able to handle GeoTools specific sorting through detecting order as a SortBy2 instance.
sort
in interface SimpleFeatureCollection
sort
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
order
- public String getID()
FeatureCollection
getID
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public final void addListener(CollectionListener listener) throws NullPointerException
NullPointerException
public final void removeListener(CollectionListener listener) throws NullPointerException
NullPointerException
public SimpleFeatureType getSchema()
FeatureCollection
Represents the most general FeatureType in common to all the features in this collection.
getSchema
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
Copyright © 1996–2019 Geotools. All rights reserved.