Class ChangeType

  • All Implemented Interfaces:
    Serializable

    public final class ChangeType
    extends Object
    implements Serializable
    Class for all constants which are used to indicate change types. Note that all ChangeType objects must be accessible via a public static field of some class or interface. These should be specified at construction time, so that the ChangeType can be properly serialized. Typically, they should be constructed using code like:
     class MyClassWhichCanFireChangeEvents {
       public final static ChangeType CHANGE_COLOR = new ChangeType(
                  "Color change",
                  MyClassWhichCanFireChangeEvents.class,
                  "CHANGE_COLOR");
       // Rest of the class here...
     }
     

    As of BioJava 1.2, the known ChangeTypes of a system follow a simple hierarchy with single inheritance. All ChangeTypes (except ChangeType.UNKNOWN) have a parent ChangeType (defaulting to ChangeType.UNKNOWN). Generally, when a listener is registered for changetype foo, changes of type bar should be accepted if bar is a sub-type of foo. This can be checked using an expression like:

         bar.isMatchingType(foo);
     
    Since:
    1.1
    Author:
    Thomas Down, Matthew Pocock
    See Also:
    Serialized Form
    • Field Detail

      • UNKNOWN

        public static final ChangeType UNKNOWN
        Constant ChangeType field which indicates that a change has occured which can't otherwise be represented. Please do not use this when there is another, more sensible, option. This is the fallback for when you realy don't know what else to do.

        As of BioJava 1.2, this type is the root of the ChangeType hierarchy. Listening for this type is equivalent to listening for all ChangeTypes.

    • Constructor Detail

      • ChangeType

        public ChangeType​(String name,
                          Field ourField,
                          ChangeType superType)
        Construct a new ChangeType.
        Parameters:
        name - The name of this change.
        ourField - The public static field which contains this ChangeType.
        superType - The supertype of this type.
        Since:
        1.2
      • ChangeType

        public ChangeType​(String name,
                          Field ourField)
        Construct a new ChangeType with superType UNKNOWN.
        Parameters:
        name - The name of this change.
        ourField - The public static field which contains this ChangeType.
      • ChangeType

        public ChangeType​(String name,
                          Class clazz,
                          String fname)
        Construct a new ChangeType with supertype UNKNOWN.
        Parameters:
        name - The name of this change.
        clazz - The class which is going to contain this change.
        fname - The name of the field in clazz which is to contain a reference to this change.
        Throws:
        BioError - If the field cannot be found.
      • ChangeType

        public ChangeType​(String name,
                          Class clazz,
                          String fname,
                          ChangeType superType)
        Construct a new ChangeType.
        Parameters:
        name - The name of this change.
        clazz - The class which is going to contain this change.
        fname - The name of the field in clazz which is to contain a reference to this change.
        superType - the supertype of this type.
        Throws:
        BioError - If the field cannot be found.
        Since:
        1.2
    • Method Detail

      • getName

        public String getName()
        Return the name of this change.
        Returns:
        The Name value
      • getField

        public Field getField()
        Return a Field object where this change type is declared.
      • toString

        public String toString()
        Return a string representation of this change.
        Overrides:
        toString in class Object
        Returns:
        Description of the Returned Value
      • getChangeTypes

        public static Set getChangeTypes​(Class clazz)
        Get all ChangeType objects defined within a class. This includes ChangeTypes defined in superclasses and interfaces. Only fields declared as public [final] static ChangeType are returned.
        Parameters:
        clazz - A class to introspect
      • matchingTypes

        public Iterator matchingTypes()
        Return an iterator which contains this type, and all supertypes.
        Since:
        1.2
      • isMatchingType

        public boolean isMatchingType​(ChangeType ct)
        Return true iff ct is equal to this type or any of it's supertypes (including ChangeType.UNKNOWN). If this is true, then ct is more general than this.
        Since:
        1.2