public class DefaultFeatureCollection extends Object implements SimpleFeatureCollection, Collection<SimpleFeature>
TreeMap
for its internal
storage.
This should be considered a MemoryFeatureCollection.
Modifier and Type | Field and Description |
---|---|
protected String |
id
id used when serialized to gml
|
protected static Logger |
LOGGER |
protected SimpleFeatureType |
schema |
Constructor and Description |
---|
DefaultFeatureCollection()
Default implementation of Feature collection.
|
DefaultFeatureCollection(FeatureCollection<SimpleFeatureType,SimpleFeature> collection)
Used to stage content in memory.
|
DefaultFeatureCollection(String id)
Used to create a feature collection to stage content in memory.
|
DefaultFeatureCollection(String id,
SimpleFeatureType memberType)
Used to create a feature collection to stage content in memory.
|
Modifier and Type | Method and Description |
---|---|
void |
accepts(FeatureVisitor visitor,
ProgressListener progress)
Visit the contents of a feature collection.
|
boolean |
add(SimpleFeature o)
Ensures that this collection contains the specified element (optional operation).
|
protected boolean |
add(SimpleFeature feature,
boolean fire) |
boolean |
addAll(Collection<? extends SimpleFeature> 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) |
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 |
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)
Construct a sorted view of this content.
|
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.
|
<T> T[] |
toArray(T[] 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.
|
void |
validate() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
equals, hashCode, parallelStream, removeIf, spliterator, stream
protected static Logger LOGGER
protected String id
protected SimpleFeatureType schema
public DefaultFeatureCollection()
feature type determined by the first feature added.
public DefaultFeatureCollection(FeatureCollection<SimpleFeatureType,SimpleFeature> collection)
Client code is encouraged to use DataUtilities.collection( collection )
collection
- SimpleFeatureCollection to copy into memorypublic DefaultFeatureCollection(String id)
The feature type will be determined by the first feature added.
id
- may be null ... feature idpublic DefaultFeatureCollection(String id, SimpleFeatureType memberType)
id
- may be null ... feature idfeatureType
- optional, may be nullpublic ReferencedEnvelope getBounds()
getBounds
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public boolean add(SimpleFeature o)
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.
add
in interface Collection<SimpleFeature>
o
- element whose presence in this collection is to be ensured.protected boolean add(SimpleFeature feature, boolean fire)
public boolean addAll(Collection<? extends SimpleFeature> collection)
addAll
in interface Collection<SimpleFeature>
collection
- elements to be inserted into this collection.Collection.add(Object)
public boolean addAll(FeatureCollection<?,?> collection)
public void clear()
clear
in interface Collection<SimpleFeature>
public boolean contains(Object o)
contains
in interface Collection<SimpleFeature>
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 Collection<SimpleFeature>
containsAll
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
collection
- Collection.containsAll(Collection)
public boolean isEmpty()
isEmpty
in interface Collection<SimpleFeature>
isEmpty
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public Iterator<SimpleFeature> iterator()
iterator
in interface Iterable<SimpleFeature>
iterator
in interface Collection<SimpleFeature>
public SimpleFeatureIterator features()
features
in interface SimpleFeatureCollection
features
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
public boolean remove(Object o)
remove
in interface Collection<SimpleFeature>
o
- element to be removed from this collection, if present.public boolean removeAll(Collection<?> collection)
removeAll
in interface Collection<SimpleFeature>
collection
- elements to be removed from this collection.remove(Object)
,
contains(Object)
public boolean retainAll(Collection<?> collection)
retainAll
in interface Collection<SimpleFeature>
collection
- elements to be retained in this collection.remove(Object)
,
contains(Object)
public int size()
size
in interface Collection<SimpleFeature>
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 Collection<SimpleFeature>
toArray
in interface FeatureCollection<SimpleFeatureType,SimpleFeature>
Collection.toArray()
public <T> T[] toArray(T[] 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 Collection<SimpleFeature>
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 FeatureReader<SimpleFeatureType,SimpleFeature> reader() throws IOException
IOException
public int getCount() throws IOException
IOException
public SimpleFeatureCollection collection() throws IOException
IOException
public Set 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)
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
- Filter 1.1 SortBy Construction of a Sortpublic void purge()
public void validate()
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.