public class DefaultFeatureSet extends AbstractIndexedVisitable implements FeatureSet, Observer
| Constructor and Description |
|---|
DefaultFeatureSet(DefaultFeatureStore store,
FeatureQuery query) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkSourceStoreModified() |
void |
delete(Feature feature)
Deletes a
Feature from this FeatureSet. |
void |
dispose()
Disposes the current object, to allow it to close and dispose any used
resources.
|
protected void |
doAccept(Visitor visitor,
long firstValueIndex)
Provides each value of this container to the provided
Visitor. |
DisposableIterator |
fastIterator()
Returns a fast iterator over this set.
|
DisposableIterator |
fastIterator(long index)
Returns a fast iterator over this set, starting from the given index.
|
FeatureType |
getDefaultFeatureType()
Returns the default
FeatureType of this FeatureSet. |
DynObjectSet |
getDynObjectSet()
Returns a
DynObjectSet of the contents of this set. |
DynObjectSet |
getDynObjectSet(boolean fast)
Returns a
DynObjectSet of the contents of this set. |
FeatureStore |
getFeatureStore() |
List |
getFeatureTypes()
Returns a list of the
FeatureType(s) in this FeatureSet. |
long |
getSize()
Returns the number of
Feature(s) contained in this FeatureSet. |
void |
insert(EditableFeature feature)
Inserts a new feature in this set.
|
boolean |
isEmpty()
Indicates whether this FeatureSet contains zero features.
|
boolean |
isFromStore(DataStore store)
Indicates whether this DataSet belongs to a specific store
|
DisposableIterator |
iterator()
Returns an iterator over the elements in this collection, in the order
(if any) defined when the collection was obtained.
|
DisposableIterator |
iterator(long index)
Returns an iterator over the elements in this collection, in the order
(if any) defined when the collection was obtained.
|
void |
update(EditableFeature feature)
Updates a
Feature with the given EditableFeature. |
void |
update(Observable obsevable,
Object notification)
Called whenever a
Observable object is changed and this
Observer has registered on it to receive notifications. |
accept, doAcceptacceptclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitacceptpublic DefaultFeatureSet(DefaultFeatureStore store, FeatureQuery query) throws DataException
DataExceptionpublic FeatureType getDefaultFeatureType()
FeatureSetFeatureType of this FeatureSet.getDefaultFeatureType in interface FeatureSetFeatureType in this FeatureSet.public List getFeatureTypes()
FeatureSetFeatureType(s) in this FeatureSet.getFeatureTypes in interface FeatureSetFeatureType(s) in this FeatureSet.public long getSize()
throws DataException
FeatureSetFeature(s) contained in this FeatureSet.
The value returned by this method won't be accurate when
the FeatureStore is being edited and this set's features
are modified, added or deleted.getSize in interface FeatureSetFeature(s) contained in this FeatureSet.DataExceptionpublic void dispose()
DisposableNOTE:After calling this method, the object may not be usable anymore.
dispose in interface Disposablepublic boolean isFromStore(DataStore store)
DataSetisFromStore in interface DataSetstore - a DataStorepublic void update(Observable obsevable, Object notification)
ObserverObservable object is changed and this
Observer has registered on it to receive notifications.
Implementations of this method will be called for each simple notification or, if a complex notification is created, for each of the child notifications.
In the latter case, don't assume any ordering in the notification between
this Observer and other Observers listening to the same
Observable.
In a complex notification scenario, if you want to receive only the
complex notification and not each of the child notifications, just
implement the ComplexObserver and prepare this method
implementation to handle receiving DefaultComplexNotification instances
as well as direct notification objects.
protected void doAccept(Visitor visitor, long firstValueIndex) throws VisitCanceledException, BaseException
AbstractIndexedVisitableVisitor.
The VisitCanceledException will be managed by the parent
AbstractIndexedVisitable class, so simply throw it.doAccept in class AbstractIndexedVisitableVisitCanceledExceptionBaseExceptionprotected void checkSourceStoreModified()
public boolean isEmpty()
throws DataException
FeatureSetisEmpty in interface FeatureSetDataExceptionpublic DisposableIterator fastIterator() throws DataException
FeatureSetFast in this case means that each of the elements returned may be a reused or pooled object instance, so don't use it to be stored in any way.
If you need to store one of the Feature of the iterator, use the
Feature.getCopy() to create a clone of the object.
NOTE: if you use this method to get the iterator, you
must get sure the iterator is disposed (@see
Disposable.dispose()) in any case, even if an error occurs
while getting the data. It is recommended to use the accept
methods instead, which handle everything for you.
Take into account the accept methods may use a fast iterator to
get the features.
fastIterator in interface FeatureSetDataExceptionDataSet.accept(org.gvsig.tools.visitor.Visitor),
FeatureSet.accept(org.gvsig.tools.visitor.Visitor, long)public DisposableIterator fastIterator(long index) throws DataException
FeatureSetFast in this case means that each of the elements returned may be a reused or pooled object instance, so don't use it to be stored in any way.
If you need to store one of the Feature of the iterator, use the
Feature.getCopy() to create a clone of the object.
NOTE: if you use this method to get the iterator, you
must get sure the iterator is disposed (@see
Disposable.dispose()) in any case, even if an error occurs
while getting the data. It is recommended to use the accept
methods instead, which handle everything for you.
Take into account the accept methods may use a fast iterator to
get the features.
fastIterator in interface FeatureSetindex - position in which the iterator is initially located.DataExceptionDataSet.accept(org.gvsig.tools.visitor.Visitor),
FeatureSet.accept(org.gvsig.tools.visitor.Visitor, long)public DisposableIterator iterator()
FeatureSetiterator in interface FeatureSetDataSet.accept(org.gvsig.tools.visitor.Visitor),
FeatureSet.accept(org.gvsig.tools.visitor.Visitor, long),
FeatureSet.fastIterator(),
FeatureSet.fastIterator(long)public DisposableIterator iterator(long index) throws DataException
FeatureSet
NOTE: if you use this method to get the iterator, you
must get sure the iterator is disposed (@see
Disposable.dispose()) in any case, even if an error occurs
while getting the data. It is recommended to use the accept
methods instead, which handle everything for you.
Take into account the accept methods may use a fast iterator to
get the features.
iterator in interface FeatureSetindex - index of first element to be returned from the iterator (by a
call to the next method).DataException - if the index is out of range (index < 0 || index >
size()).DataSet.accept(org.gvsig.tools.visitor.Visitor),
FeatureSet.accept(org.gvsig.tools.visitor.Visitor, long),
FeatureSet.fastIterator(),
FeatureSet.fastIterator(long)public void delete(Feature feature) throws DataException
FeatureSetFeature from this FeatureSet.DisposableIterator from this store that was still in use will be
unsafe. Use Iterator.remove() instead.delete in interface FeatureSetfeature - the Feature to delete.DataExceptionpublic void insert(EditableFeature feature) throws DataException
FeatureSetEditableFeature as it has not been stored yet.DisposableIterator from this store that was still in use can will not
reflect this change.insert in interface FeatureSetfeature - the EditableFeature to insert.DataExceptionpublic void update(EditableFeature feature) throws DataException
FeatureSetFeature with the given EditableFeature.DisposableIterator from this store that was still in use can will not
reflect this change.update in interface FeatureSetfeature - an instance of EditableFeature with which to update
the associated Feature.DataExceptionpublic DynObjectSet getDynObjectSet()
FeatureSetDynObjectSet of the contents of this set.
Defaults to fast iteration.getDynObjectSet in interface FeatureSetDynObjectSetpublic DynObjectSet getDynObjectSet(boolean fast)
FeatureSetDynObjectSet of the contents of this set.getDynObjectSet in interface FeatureSetfast - if the set will be able to be iterated in a fast way, by
reusing the DynObject instance for each
Feature instance.DynObjectSetpublic FeatureStore getFeatureStore()