## org.biojava.bio.annodb
Class SimpleAnnotationDB

    java.lang.Object
      org.biojava.bio.annodb.SimpleAnnotationDB

All Implemented Interfaces:
  AnnotationDB

    public class SimpleAnnotationDB

extends Object
implements AnnotationDB

A no-frills implementation of AnnotationDB.

Since:
  1.3
Author:
  Matthew Pocock

Field Summary

Fields inherited from interface org.biojava.bio.annodb.AnnotationDB
`EMPTY`

Constructor Summary
`SimpleAnnotationDB(String name, Set anns, AnnotationType schema)` Create a no-frills AnnotationDB instancec.

Method Summary
`AnnotationDB` `filter(AnnotationType at)` Find all Annotation instances in this DB that are of a particular type.
`String` `getName()` The name of this AnnotationDB.
`AnnotationType` `getSchema()` Get an AnnotationType that accepts all Annotation instances in this DB.
`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(String name,
                              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 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 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