Package org.apache.sis.storage.aggregate
Class ConcatenatedFeatureSet
java.lang.Object
org.apache.sis.storage.AbstractResource
org.apache.sis.storage.AbstractFeatureSet
org.apache.sis.storage.aggregate.AggregatedFeatureSet
org.apache.sis.storage.aggregate.ConcatenatedFeatureSet
- All Implemented Interfaces:
DataSet
,FeatureSet
,Resource
Exposes a sequence of
FeatureSet
s as a single one.
The concatenation is built from an array or collection of input feature sets,
copied verbatim in iteration order and without removal of duplicated elements.
All input feature sets must share a common type, or at least a common super-type.
The feature type of this concatenated set will be the
most specific type found among all input feature sets.
Identification
There is no identifier since this feature set is a computation result.Multi-threading
Concatenated feature set is immutable and thread-safe if all input feature sets are immutable and thread-safe.- Since:
- 1.0
- Version:
- 1.2
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final DefaultFeatureType
The most specific feature type common to all feature sets in the sources list.private final List<FeatureSet>
The sequence of feature sets whose feature instances will be returned.Fields inherited from class org.apache.sis.storage.AbstractResource
listeners
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ConcatenatedFeatureSet
(StoreListeners parent, FeatureSet[] sources) Creates a new feature set as a concatenation of the sequence of features given by thesources
.private
ConcatenatedFeatureSet
(FeatureSet[] sources, ConcatenatedFeatureSet original) Creates a new concatenated feature set with the same types than the given feature set, but different sources. -
Method Summary
Modifier and TypeMethodDescriptionstatic FeatureSet
create
(Collection<? extends FeatureSet> sources) Creates a new feature set as a concatenation of the sequence of features given by thesources
.static FeatureSet
create
(FeatureSet... sources) Creates a new feature set as a concatenation of the sequence of features given by thesources
.(package private) final List<FeatureSet>
Returns all feature set used by this aggregation.features
(boolean parallel) Returns a stream of all features contained in this concatenated dataset.Returns an estimation of the number of features in this set, or an empty value if unknown.getType()
Returns the most specific feature type common to all feature sets given to the constructor.Requests a subset of features and/or feature properties from this resource.Methods inherited from class org.apache.sis.storage.aggregate.AggregatedFeatureSet
clearCache, createMetadata, getEnvelope
Methods inherited from class org.apache.sis.storage.AbstractFeatureSet
getIdentifier
Methods inherited from class org.apache.sis.storage.AbstractResource
addListener, getMetadata, getSynchronizationLock, removeListener
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.sis.storage.Resource
addListener, getMetadata, removeListener
-
Field Details
-
sources
The sequence of feature sets whose feature instances will be returned. -
commonType
The most specific feature type common to all feature sets in the sources list.
-
-
Constructor Details
-
ConcatenatedFeatureSet
Creates a new concatenated feature set with the same types than the given feature set, but different sources. This is used for creating subsets. -
ConcatenatedFeatureSet
protected ConcatenatedFeatureSet(StoreListeners parent, FeatureSet[] sources) throws DataStoreException Creates a new feature set as a concatenation of the sequence of features given by thesources
. This constructor does not verify that the givensources
array contains at least two elements; this verification must be done by the caller. This constructor retains the givensources
array by direct reference; clone, if desired, shall be done by the caller.- Parameters:
parent
- listeners of the parent resource, ornull
if none.sources
- the sequence of feature sets to expose in a single set. Must neither be null, empty nor contain a single element only.- Throws:
DataStoreException
- if given feature sets does not share any common type.
-
-
Method Details
-
create
Creates a new feature set as a concatenation of the sequence of features given by thesources
. The given array shall be non-empty. If the array contains only 1 element, that element is returned.- Parameters:
sources
- the sequence of feature sets to expose in a single set.- Returns:
- the concatenation of given feature set.
- Throws:
DataStoreException
- if given feature sets does not share any common type.
-
create
Creates a new feature set as a concatenation of the sequence of features given by thesources
. The given collection shall be non-empty. If the collection contains only 1 element, that element is returned.- Parameters:
sources
- the sequence of feature sets to expose in a single set.- Returns:
- the concatenation of given feature set.
- Throws:
DataStoreException
- if given feature sets does not share any common type.
-
dependencies
Returns all feature set used by this aggregation. This method is invoked for implementation ofAggregatedFeatureSet.getEnvelope()
and#createMetadata(MetadataBuilder)
.- Specified by:
dependencies
in classAggregatedFeatureSet
- Returns:
- all feature sets in this aggregation.
-
getType
Returns the most specific feature type common to all feature sets given to the constructor.- Returns:
- the common type of all features returned by this set.
-
getFeatureCount
Returns an estimation of the number of features in this set, or an empty value if unknown. This is the sum of the estimations provided by all source sets, or empty if at least one source could not provide an estimation.- Overrides:
getFeatureCount
in classAbstractFeatureSet
- Returns:
- estimation of the number of features.
-
features
Returns a stream of all features contained in this concatenated dataset. If theparallel
argument isfalse
, then datasets are traversed in the order they were specified at construction time. If theparallel
argument istrue
, then datasets are traversed in no determinist order. If an error occurred while reading the feature instances from a source, then the error is wrapped in aBackingStoreException
.- Parameters:
parallel
-true
for a parallel stream, orfalse
for a sequential stream.- Returns:
- all features contained in this dataset.
-
subset
Requests a subset of features and/or feature properties from this resource.- Parameters:
query
- definition of feature and feature properties filtering applied at reading time.- Returns:
- resulting subset of features (never
null
). - Throws:
DataStoreException
- if an error occurred while processing the query.- See Also:
-