Class SimpleAnnotationDB

  • All Implemented Interfaces:
    AnnotationDB

    public class SimpleAnnotationDB
    extends java.lang.Object
    implements AnnotationDB

    A no-frills implementation of AnnotationDB.

    Since:
    1.3
    Author:
    Matthew Pocock
    • Constructor Summary

      Constructors 
      Constructor Description
      SimpleAnnotationDB​(java.lang.String name, java.util.Set anns, AnnotationType schema)
      Create a no-frills AnnotationDB instancec.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      AnnotationDB filter​(AnnotationType at)
      Find all Annotation instances in this DB that are of a particular type.
      java.lang.String getName()
      The name of this AnnotationDB.
      AnnotationType getSchema()
      Get an AnnotationType that accepts all Annotation instances in this DB.
      java.util.Iterator iterator()
      Loop over each Annotation in this db.
      AnnotationDB search​(AnnotationType at)
      Find all Annotation instances in this DB and any Annotations that are child properties of these that match an AnnotationType.
      int size()
      The number of Annotation instances in the DB.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SimpleAnnotationDB

        public SimpleAnnotationDB​(java.lang.String name,
                                  java.util.Set anns,
                                  AnnotationType schema)
        Create a no-frills AnnotationDB instancec.
        Parameters:
        name - the name of this Annotation DB
        anns - a Set of Annotation instances it contains
        schema - an AnnotationType schema that applies to them
    • Method Detail

      • getName

        public java.lang.String getName()
        Description copied from interface: AnnotationDB

        The name of this AnnotationDB.

        Specified by:
        getName in interface AnnotationDB
        Returns:
        the name of this AnnotationDB
      • size

        public int size()
        Description copied from interface: AnnotationDB
        The number of Annotation instances in the DB.
        Specified by:
        size in interface AnnotationDB
        Returns:
        the size of this DB
      • getSchema

        public AnnotationType getSchema()
        Description copied from interface: AnnotationDB

        Get an AnnotationType that accepts all Annotation instances in this DB.

        The schema should accept all Annotations in the DB. However, it may hit other Annotations. So, AnnotationType.ALL is always a valid schema. Obviously, the more retrictive it is, the more usefull it becomes for introspection.

        Specified by:
        getSchema in interface AnnotationDB
        Returns:
        the schema AnnotationType
      • iterator

        public java.util.Iterator iterator()
        Description copied from interface: AnnotationDB
        Loop over each Annotation in this db.
        Specified by:
        iterator in interface AnnotationDB
        Returns:
        an Iterator over each item in the DB
      • filter

        public AnnotationDB filter​(AnnotationType at)
        Description copied from interface: AnnotationDB
        Find all Annotation instances in this DB that are of a particular type.
        Specified by:
        filter in interface AnnotationDB
        Parameters:
        at - the AnnotationType to match
        Returns:
        an AnnotationDB with all matching Annotation instances
      • search

        public AnnotationDB search​(AnnotationType at)
        Description copied from interface: AnnotationDB
        Find all Annotation instances in this DB and any Annotations that are child properties of these that match an AnnotationType.
        Specified by:
        search in interface AnnotationDB
        Parameters:
        at - the AnnotationType to search with
        Returns:
        an AnnotationDB with all matching Annotation instances, irregardless of how deep in the hieracy they are