org.biojava.bio.annodb
Class IndexedAnnotationDB

java.lang.Object
  extended by 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