## org.biojava.bio.annodb
Class IndexedAnnotationDB

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

All Implemented Interfaces:
  AnnotationDB

    public class IndexedAnnotationDB

extends Object
implements AnnotationDB

A database of Annotation instances backed by an indexed file set.

Since:
  1.3
Author:
  Matthew Pocock

Nested Class Summary
`static interface` `IndexedAnnotationDB.ParserListenerFactory` A factory for retrieving parsers and listeners.
`static class` `IndexedAnnotationDB.StaticMethodRPFactory` An implementation of ParserListenerFactory that uses a static method.

Field Summary

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

Constructor Summary
`IndexedAnnotationDB(BioStore store)` Initialise the db from a store.
`IndexedAnnotationDB(String dbName, File storeLoc, Index2Model model, List toIndex, int maxKeyLen, AnnotationType schema, IndexedAnnotationDB.ParserListenerFactory plFactory)` Create a new IndexedAnnotationDB.

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.
`IndexedAnnotationDB.ParserListenerFactory` `getParserListenerFactory()` Get the ParserListenerFactory used by this IndexedAnnotationDB.
`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

### IndexedAnnotationDB

    public IndexedAnnotationDB(String dbName,
                               File storeLoc,
                               Index2Model model,
                               List toIndex,
                               int maxKeyLen,
                               AnnotationType schema,
                               IndexedAnnotationDB.ParserListenerFactory plFactory)
                        throws BioException,
                               CommitFailure,
                               IOException,
                               ParserException

  Create a new IndexedAnnotationDB.

  Parameters:
    `dbName` -
    `storeLoc` -
    `model` -
    `toIndex` -
    `maxKeyLen` -
    `schema` -
    `plFactory` -
  Throws:
    `BioException`
    `CommitFailure`
    `IOException`
    `ParserException`

### IndexedAnnotationDB

    public IndexedAnnotationDB(BioStore store)
                        throws IOException,
                               SAXException

  Initialise the db from a store.

  Parameters:
    `store` - the BioStore to initalise from
  Throws:
    `IOException` - if there was an IO fault accessing the store
    `SAXException` - if the XML configuration file is corrupted

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

### 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

### 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

### 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

### getParserListenerFactory

    public IndexedAnnotationDB.ParserListenerFactory getParserListenerFactory()

  Get the ParserListenerFactory used by this IndexedAnnotationDB.

  Returns:
    the ParserListenerFactory