org.biojava.bio
Class AnnotationType.Abstract

java.lang.Object
  extended byorg.biojava.bio.AnnotationType.Abstract
All Implemented Interfaces:
AnnotationType
Direct Known Subclasses:
AnnotationType.Impl
Enclosing class:
AnnotationType

public abstract static class AnnotationType.Abstract
extends java.lang.Object
implements AnnotationType

An abstract base class useful for implementing AnnotationType instances.

This provides deffinitions for the logical operators (validate(), subTypeOf()), the mutators (setProperty(), getProperty() and deleteProperty()) and toString() that you may not want to write yourself. It leaves the data-related methods up to you.

Since:
1.3
Author:
Matthew Pocock, Thomas Down
For developers:
When implementing AnnotationType

Nested Class Summary
 
Nested classes inherited from class org.biojava.bio.AnnotationType
AnnotationType.Abstract, AnnotationType.Impl
 
Field Summary
 
Fields inherited from interface org.biojava.bio.AnnotationType
ANY, NONE
 
Constructor Summary
AnnotationType.Abstract()
           
 
Method Summary
 void addProperty(Annotation ann, java.lang.Object key, java.lang.Object value)
          Add a value to the specified property slot.
 java.util.Collection getProperty(Annotation ann, java.lang.Object property)
          Get the Collection of values associated with an Annotation bundle according to the type we believe it to be.
 boolean instanceOf(Annotation ann)
          Validate an Annotation against this AnnotationType.
 void removeProperty(Annotation ann, java.lang.Object key, java.lang.Object value)
          Remove a value from the specified property slot.
 void setConstraints(java.lang.Object key, PropertyConstraint pc, Location cc)
          Set the constraints associated with a property.
 void setDefaultConstraints(PropertyConstraint pc, Location cc)
          Set the constraints that will apply to all properties without an explicitly defined set of constraints.
 void setProperty(Annotation ann, java.lang.Object property, java.lang.Object value)
          Set the property in an annotation bundle according to the type we believe it should be.
 boolean subTypeOf(AnnotationType subType)
          See if an AnnotationType is a specialisation of this type.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.biojava.bio.AnnotationType
getComment, getComment, getConstraint, getDefaultConstraint, getProperties, setComment, setComment, setConstraint, setDefaultConstraint
 

Constructor Detail

AnnotationType.Abstract

public AnnotationType.Abstract()
Method Detail

setConstraints

public void setConstraints(java.lang.Object key,
                           PropertyConstraint pc,
                           Location cc)
Description copied from interface: AnnotationType
Set the constraints associated with a property. This method constrains the value of the specified property such that all members must match con, and the number of members must match card. It implicitly constructs a CollectionConstraint.AllValuesIn instance.

Specified by:
setConstraints in interface AnnotationType
Parameters:
key - the name of the property to constrain
pc - the PropertyConstraint to enforce
cc - the CardinalityConstraint to enforce

setDefaultConstraints

public void setDefaultConstraints(PropertyConstraint pc,
                                  Location cc)
Description copied from interface: AnnotationType
Set the constraints that will apply to all properties without an explicitly defined set of constraints. This method constrains the value of the specified property such that all members must match con, and the number of members must match card. It implicitly constructs a CollectionConstraint.AllValuesIn instance.

Specified by:
setDefaultConstraints in interface AnnotationType
Parameters:
pc - the default PropertyConstraint
cc - the default CardinalityConstraint

instanceOf

public boolean instanceOf(Annotation ann)
Description copied from interface: AnnotationType
Validate an Annotation against this AnnotationType.

Specified by:
instanceOf in interface AnnotationType
Parameters:
ann - the Annotation to validate.
Returns:
true if ann conforms to this type and false if it doesn't.

setProperty

public final void setProperty(Annotation ann,
                              java.lang.Object property,
                              java.lang.Object value)
                       throws ChangeVetoException
Description copied from interface: AnnotationType
Set the property in an annotation bundle according to the type we believe it should be. This will take care of any neccisary packing or unpacking to Collections.

Specified by:
setProperty in interface AnnotationType
Parameters:
ann - the Annotation to modify
property - the property key Object
value - the property value Object
Throws:
ChangeVetoException - if the value could not be accepted by this annotation type for that property key, or if the Annotation could not be modified

getProperty

public final java.util.Collection getProperty(Annotation ann,
                                              java.lang.Object property)
                                       throws ChangeVetoException
Description copied from interface: AnnotationType
Get the Collection of values associated with an Annotation bundle according to the type we believe it to be. This will take care of any neccisary packing or unpacking to Collections. Properties with no values will return empty Collections.

Specified by:
getProperty in interface AnnotationType
Parameters:
ann - the Annotation to access
property - the property key Object
Returns:
a Collection of values
Throws:
ChangeVetoException - if the value could not be removed

addProperty

public final void addProperty(Annotation ann,
                              java.lang.Object key,
                              java.lang.Object value)
                       throws ChangeVetoException
Description copied from interface: AnnotationType
Add a value to the specified property slot.

Specified by:
addProperty in interface AnnotationType
Parameters:
ann - the Annotation to modify
key - the property key Object
value - the property value Object
Throws:
ChangeVetoException - if the value could not be accepted by this annotation type for that property key, or if the Annotation could not be modified

removeProperty

public final void removeProperty(Annotation ann,
                                 java.lang.Object key,
                                 java.lang.Object value)
                          throws ChangeVetoException
Description copied from interface: AnnotationType
Remove a value from the specified property slot.

Specified by:
removeProperty in interface AnnotationType
Parameters:
ann - the Annotation to modify
key - the property key Object
value - the property value Object
Throws:
ChangeVetoException - if the Annotation could not be modified

toString

public java.lang.String toString()

subTypeOf

public boolean subTypeOf(AnnotationType subType)
Description copied from interface: AnnotationType

See if an AnnotationType is a specialisation of this type.

An AnnotationType is a sub-type if it restricts each of the properties of the super-type to a type that can be cast to the type in the super-type. Note that this is not always a cast in the pure Java sense; it may include checks on the number and type of members in collections or other criteria.

Specified by:
subTypeOf in interface AnnotationType
Parameters:
subType - an AnnotationType to check.
Returns:
true if subType is a sub-type of this type.