public final class ProjectedFeatureHolder extends AbstractFeatureHolder implements FeatureHolder, Serializable
parent
property. The destination coordinate system
can run in the opposite direction from the source, in which case the
strand
property of StrandedFeatures is flipped.
The projected features returned by this class are small proxy objects.
Proxy classes are autogenerated on demand for any sub-interface of
Feature
by the ProjectionEngine
class.
FeatureHolder.EmptyFeatureHolder
EMPTY_FEATURE_HOLDER, FEATURES, SCHEMA
Constructor and Description |
---|
ProjectedFeatureHolder(ProjectionContext context) |
Modifier and Type | Method and Description |
---|---|
boolean |
containsFeature(Feature f)
Check if the feature is present in this holder.
|
int |
countFeatures()
Count how many features are contained.
|
Feature |
createFeature(Feature.Template templ)
Create a new Feature, and add it to this FeatureHolder.
|
Iterator |
features()
Iterate over the features in no well defined order.
|
FeatureHolder |
filter(FeatureFilter ff)
Query this set of features using a supplied
FeatureFilter . |
FeatureHolder |
filter(FeatureFilter ff,
boolean recurse)
Return a new FeatureHolder that contains all of the children of this one
that passed the filter fc.
|
protected ChangeEvent |
forwardChangeEvent(ChangeEvent cev)
Called internally to generate a forwarded version of a ChangeEvent from our
underlying FeatureHolder
|
ProjectionContext |
getContext() |
FeatureFilter |
getSchema()
Return a schema-filter for this
FeatureHolder . |
protected FeatureHolder |
makeProjectionSet(FeatureHolder fh)
Called internally to construct a lightweight projected view of a set of
features
|
void |
removeFeature(Feature dyingChild)
Remove a feature from this FeatureHolder.
|
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
public ProjectedFeatureHolder(ProjectionContext context)
public ProjectionContext getContext()
public Iterator features()
FeatureHolder
features
in interface FeatureHolder
public int countFeatures()
FeatureHolder
countFeatures
in interface FeatureHolder
public boolean containsFeature(Feature f)
FeatureHolder
containsFeature
in interface FeatureHolder
f
- the Feature to checkpublic FeatureHolder filter(FeatureFilter ff)
FeatureHolder
FeatureFilter
.filter
in interface FeatureHolder
filter
in class AbstractFeatureHolder
ff
- the FeatureFilter
to apply.filter
.public FeatureHolder filter(FeatureFilter ff, boolean recurse)
FeatureHolder
filter
in interface FeatureHolder
filter
in class AbstractFeatureHolder
ff
- the FeatureFilter to applyrecurse
- true if all features-of-features should be scanned, and a
single flat collection of features returned, or false if
just immediate children should be filtered.public Feature createFeature(Feature.Template templ) throws ChangeVetoException, BioException
FeatureHolder
createFeature
in interface FeatureHolder
createFeature
in class AbstractFeatureHolder
ChangeVetoException
- if this FeatureHolder does not support
creation of new features, or if the change was vetoedBioException
- if something went wrong during creating the featurepublic void removeFeature(Feature dyingChild) throws ChangeVetoException, BioException
FeatureHolder
removeFeature
in interface FeatureHolder
removeFeature
in class AbstractFeatureHolder
ChangeVetoException
- if this FeatureHolder does not support
feature removal or if the change was vetoedBioException
- if there was an error removing the featurepublic FeatureFilter getSchema()
FeatureHolder
FeatureHolder
. This is a filter
which all Feature
s immediately contained by this FeatureHolder
will match. It need not directly match their child features, but it can (and should!) provide
information about them using FeatureFilter.OnlyChildren
filters. In cases where there
is no feature hierarchy, this can be indicated by including FeatureFilter.leaf
in
the schema filter.
For the truly non-informative case, it is possible to return FeatureFilter.all
. However,
it is almost always possible to provide slightly more information that this. For example, Sequence
objects should, at a minimum, return FeatureFilter.top_level
. Feature
objects
should, as a minimum, return FeatureFilter.ByParent(new FeatureFilter.ByFeature(this))
.
getSchema
in interface FeatureHolder
protected FeatureHolder makeProjectionSet(FeatureHolder fh)
protected ChangeEvent forwardChangeEvent(ChangeEvent cev)
Copyright © 2014 BioJava. All rights reserved.