|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.biojava.utils.AbstractChangeable
org.biojava.bio.MergeAnnotation
public class MergeAnnotation
Merged view onto a list of underlying Annotation objects. Currently immutable (but reflects changes to underlying objects). Annotations near the beginning of the list will have properties that take precedence. It is possible to get the ordering of the annotations, or to change it by removing and re-adding methods. This Annotation implementation is immutable.
Nested Class Summary | |
---|---|
protected class |
MergeAnnotation.PropertyForwarder
Listener used to forward changes for any of the underlying annotations to listeners on this annotation. |
Field Summary | |
---|---|
static ChangeType |
ANNOTATION_ADD
ChangeType of ChangeEvent fired before and after an annotation is added to MergeAnnotation. |
static ChangeType |
ANNOTATION_CHANGED
ChangeType of ChangeEvent fired before and after an annotation is added to MergeAnnotation. |
static ChangeType |
ANNOTATION_REMOVE
ChangeType of ChangeEvent fired before and after an annotation is added to MergeAnnotation. |
Fields inherited from interface org.biojava.bio.Annotation |
---|
EMPTY_ANNOTATION, PROPERTY |
Constructor Summary | |
---|---|
MergeAnnotation()
|
Method Summary | |
---|---|
void |
addAnnotation(Annotation ann)
Add a new Annotation to to the end of the list to be merged. |
Map |
asMap()
Return a map that contains the same key/values as this Annotation. |
boolean |
containsProperty(Object key)
Returns whether there the property is defined. |
List |
getAnnotations()
Gets an unmodifiable view of the list of Annotations that are part of the MergeAnnotation. |
protected ChangeSupport |
getChangeSupport(ChangeType changeType)
Called to retrieve the ChangeSupport for this object. |
Object |
getProperty(Object key)
Retrieve the value of a property by key. |
Set |
keys()
Get a set of key objects. |
void |
removeAnnotation(Annotation ann)
Remove an Annotation from the list. |
void |
removeProperty(Object key)
Delete a property. |
void |
setProperty(Object key,
Object value)
Set the value of a property. |
Methods inherited from class org.biojava.utils.AbstractChangeable |
---|
addChangeListener, addChangeListener, generateChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.biojava.utils.Changeable |
---|
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener |
Field Detail |
---|
public static final ChangeType ANNOTATION_CHANGED
public static final ChangeType ANNOTATION_ADD
public static final ChangeType ANNOTATION_REMOVE
Constructor Detail |
---|
public MergeAnnotation()
Method Detail |
---|
public void addAnnotation(Annotation ann) throws ChangeVetoException
ann
- the Annotation to add
ChangeVetoException
- if the annotation could not be addedpublic List getAnnotations()
List
of the Annotations that form
this MergeAnnotation.public void removeAnnotation(Annotation ann) throws ChangeVetoException
ann
- an Annotation
to be removed.
ChangeVetoException
- if an error occursprotected ChangeSupport getChangeSupport(ChangeType changeType)
AbstractChangeable
Your implementation of this method should have the following structure:
It is usual for the forwarding listeners (someForwarder in this example) to
be transient and lazily instantiated. Be sure to register & unregister the
forwarder in the code that does the ChangeEvent handling in setter methods.
ChangeSupport cs = super.getChangeSupport(ct);
if(someForwarder == null && ct.isMatching(SomeInterface.SomeChangeType)) {
someForwarder = new ChangeForwarder(...
this.stateVariable.addChangeListener(someForwarder, VariableInterface.AChange);
}
return cs;
getChangeSupport
in class AbstractChangeable
public void setProperty(Object key, Object value) throws ChangeVetoException
Annotation
Set the value of a property.
This method throws an exception if either properties can not be added to this object, or that this particular property is immutable or illegal within the implementation.
Normal raw access to the property. For cleverer access, use methods in AnnotationType.
setProperty
in interface Annotation
key
- the key objectvalue
- the new value for this key
ChangeVetoException
- if this annotation object can't be changed, or
if the change was vetoed.public void removeProperty(Object key) throws ChangeVetoException
Annotation
removeProperty
in interface Annotation
key
- the key object
ChangeVetoException
- if the change is vetoedpublic Object getProperty(Object key)
Annotation
Retrieve the value of a property by key.
Unlike the Map collections, it will complain if the key does not exist. It will only return null if the key is defined and has value null.
Normal raw access to the property. For cleverer access, use methods in AnnotationType.
getProperty
in interface Annotation
key
- the key of the property to retrieve
public boolean containsProperty(Object key)
Annotation
containsProperty
in interface Annotation
key
- the key Object to search for
public Set keys()
Annotation
keys
in interface Annotation
public Map asMap()
Annotation
If the annotation changes, the map may not reflect this. The Map may be unmodifiable.
asMap
in interface Annotation
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |