Class AnnotationType.Abstract

java.lang.Object
org.biojava.bio.AnnotationType.Abstract
All Implemented Interfaces:
AnnotationType
Direct Known Subclasses:
AnnotationType.Impl
Enclosing interface:
AnnotationType

public abstract static class AnnotationType.Abstract extends 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
  • Constructor Details

  • Method Details

    • setConstraints

      public void setConstraints(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.

      When you are building your own AnnotationType

      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

      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. Any time you wish to see if an Annotation bundle conforms to a type
      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, Object property, 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 Collection getProperty(Annotation ann, 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, Object key, 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, Object key, 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 String toString()
      Overrides:
      toString in class Object
    • 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.