public class TreeSetFeatureCollection extends Object implements SimpleFeatureCollection
The features are maintained in an internal TreeMap resuling in a collection that is sorted by feature id mimicking the contents of a shapefile.
This implementation of FeatureCollection is painfully correct.
Modifier and Type | Field and Description |
---|---|
protected String |
id
id used when serialized to gml
|
protected static Logger |
LOGGER |
protected SimpleFeatureType |
schema
FeatureType of contents.
|
Constructor and Description |
---|
TreeSetFeatureCollection()
FeatureCollection schema will be defined by the first added feature.
|
TreeSetFeatureCollection(FeatureCollection<SimpleFeatureType,SimpleFeature> collection)
This constructor should not be used by client code.
|
TreeSetFeatureCollection(String id,
SimpleFeatureType memberType)
This constructor should not be used by client code.
|
Modifier and Type | Method and Description |
---|---|
void |
accepts(FeatureVisitor visitor,
ProgressListener progress)
Visit the contents of a feature collection.
|
boolean |
add(SimpleFeature feature)
Ensures that this collection contains the specified element (optional operation).
|
protected boolean |
add(SimpleFeature feature,
boolean fire)
Deprecated.
|
boolean |
addAll(Collection collection)
Adds all of the elements in the specified collection to this collection (optional operation).
|
boolean |
addAll(FeatureCollection<?,?> collection) |
void |
clear()
Removes all of the elements from this collection (optional operation).
|
void |
close(FeatureIterator<SimpleFeature> close) |
void |
close(Iterator close) |
SimpleFeatureCollection |
collection() |
boolean |
contains(Object o)
Returns true if this collection contains the specified element.
|
boolean |
containsAll(Collection collection)
Test for collection membership.
|
SimpleFeatureIterator |
features()
Gets a SimpleFeatureIterator of this feature collection.
|
Set<String> |
fids()
Optimization time ... grab the fid set so other can quickly test membership during
removeAll/retainAll implementations.
|
ReferencedEnvelope |
getBounds()
Gets the bounding box for the features in this feature collection.
|
int |
getCount() |
String |
getID()
ID used when serializing to GML
|
SimpleFeatureType |
getSchema()
The schema for the child feature members of this collection.
|
boolean |
isEmpty()
Returns true if this collection contains no elements.
|
Iterator<SimpleFeature> |
iterator()
Returns an iterator over the elements in this collection.
|
void |
purge() |
FeatureReader<SimpleFeatureType,SimpleFeature> |
reader() |
boolean |
remove(Object o)
Removes a single instance of the specified element from this collection, if it is present
(optional operation).
|
boolean |
removeAll(Collection collection)
Removes all this collection's elements that are also contained in the specified collection
(optional operation).
|
boolean |
retainAll(Collection collection)
Retains only the elements in this collection that are contained in the specified collection
(optional operation).
|
int |
size()
Returns the number of elements in this collection.
|
SimpleFeatureCollection |
sort(SortBy order)
Obtained sorted contents.
|
SimpleFeatureCollection |
subCollection(Filter filter)
Will return an optimized subCollection based on access to the origional
MemoryFeatureCollection.
|
Object[] |
toArray()
Returns an array containing all of the elements in this collection.
|
Object[] |
toArray(Object[] a)
Returns an array containing all of the elements in this collection; the runtime type of the
returned array is that of the specified array.
|
protected static Logger LOGGER
protected String id
protected SimpleFeatureType schema
public TreeSetFeatureCollection()
public TreeSetFeatureCollection(FeatureCollection<SimpleFeatureType,SimpleFeature> collection)
collection
- SimpleFeatureCollection to copy into memorypublic TreeSetFeatureCollection(String id, SimpleFeatureType memberType)
Opportunistic reuse is encouraged, but only for the purposes of testing or other
specialized uses. Normal creation should occur through
org.geotools.core.FeatureCollections.newCollection()
allowing applications to
customize any generated collections.
id
- may be null ... feature idfeatureType
- optional, may be nullpublic ReferencedEnvelope getBounds()
getBounds
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public boolean add(SimpleFeature feature)
Collections that support this operation may place limitations on what elements may be added to this collection. In particular, some collections will refuse to add null elements, and others will impose restrictions on the type of elements that may be added. Collection classes should clearly specify in their documentation any restrictions on what elements may be added.
If a collection refuses to add a particular element for any reason other than that it already contains the element, it must throw an exception (rather than returning false ). This preserves the invariant that a collection always contains the specified element after this call returns.
o
- element whose presence in this collection is to be ensured.@Deprecated protected boolean add(SimpleFeature feature, boolean fire)
public boolean addAll(Collection collection)
collection
- elements to be inserted into this collection.#add(Object)
public boolean addAll(FeatureCollection<?,?> collection)
public void clear()
public boolean contains(Object o)
contains
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
o
- element whose presence in this collection is to be tested.Collection.contains(Object)
public boolean containsAll(Collection collection)
containsAll
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
collection
- Collection.containsAll(Collection)
public boolean isEmpty()
isEmpty
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public Iterator<SimpleFeature> iterator()
public SimpleFeatureIterator features()
features
in interface SimpleFeatureCollection
features
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public boolean remove(Object o)
o
- element to be removed from this collection, if present.public boolean removeAll(Collection collection)
collection
- elements to be removed from this collection.remove(Object)
,
contains(Object)
public boolean retainAll(Collection collection)
collection
- elements to be retained in this collection.remove(Object)
,
contains(Object)
public int size()
size
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
Collection.size()
public Object[] toArray()
The returned array will be "safe" in that no references to it are maintained by this collection. (In other words, this method must allocate a new array even if this collection is backed by an array). The caller is thus free to modify the returned array.
This method acts as bridge between array-based and collection-based APIs.
toArray
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
Collection.toArray()
public Object[] toArray(Object[] a)
If this collection fits in the specified array with room to spare (i.e., the array has more elements than this collection), the element in the array immediately following the end of the collection is set to null. This is useful in determining the length of this collection only if the caller knows that this collection does not contain any null elements.)
If this collection makes any guarantees as to what order its elements are returned by its iterator, this method must return the elements in the same order.
Like the toArray method, this method acts as bridge between array-based and collection-based APIs. Further, this method allows precise control over the runtime type of the output array, and may, under certain circumstances, be used to save allocation costs
Suppose l is a List known to contain only strings. The following code can be used to dump the list into a newly allocated array of String:
String[] x = (String[]) v.toArray(new String[0]);
Note that toArray(new Object[0]) is identical in function to toArray().
toArray
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
a
- the array into which the elements of this collection are to be stored, if it is big
enough; otherwise, a new array of the same runtime type is allocated for this purpose.Collection.toArray(Object[])
public void close(FeatureIterator<SimpleFeature> close)
public void close(Iterator close)
public FeatureReader<SimpleFeatureType,SimpleFeature> reader() throws IOException
IOException
public int getCount() throws IOException
IOException
public SimpleFeatureCollection collection() throws IOException
IOException
public Set<String> fids()
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)
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)
FeatureCollection
This method may not be supported by all implementations, consider the use of FeatureSource.features( Query ).
sort
in interface SimpleFeatureCollection
sort
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
order
- Sort orderpublic void purge()
public String getID()
FeatureCollection
getID
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
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.