Package org.biojava.bio.program.tagvalue
Class Indexer2
java.lang.Object
org.biojava.bio.program.tagvalue.Indexer2
- All Implemented Interfaces:
TagValueListener
Listens to tag-value events and passes on indexing events to an IndexStore. This is an update to Indexer that understands that indexed properties may not be at the top level.
This class is provided to allow the indexing of arbitrary record-based text files. Indexer objects are built for a single file and the indexes are written to a single index store. To keep all of the reader offsets in sync with one another, you will almost certainly wish to use the getReader() method to retrieve a CountedBufferedReader instance if you want to read the byte-offset between calls to Parser.read(). Below is an example of how to index a file.
File fileToIndex; // get this from somewhere
// don't forget to register all the apropreate keys to the factory first.
BioIndexStore indexStore = bioIndxStrFact.createBioStore();
Indexer indexer = new Indexer(fileToIndex, indexStore);
indexer.setPrimaryKeyName("foo", new String[] { "foo" });
indexer.addSecondaryKey("bar", new String[] { "x", "y", "bar"});
indexer.addSecondaryKey("baz", new String[] { "z" });
TagValueParser tvParser; // make this appropriate for your format
TagValueListener listener; // make this appropriate for your format
// and forward all events to indexer
Parser parser = new Parser();
while(
parser.read(indexer.getReader(), tvParser, listener)
) {
System.out.print(".");
}
- Since:
- 1.2
- Author:
- Matthew Pocock
-
Constructor Summary
ConstructorsConstructorDescriptionIndexer2(File file, IndexStore indexStore, Index2Model model) Build a new Indexer. -
Method Summary
Modifier and TypeMethodDescriptionvoidThe current record has ended.voidendTag()End the current tag.Retrieve the reader that can be safely used to index this file.voidA new record is about to start.voidStart a new tag.voidvalue(TagValueContext ctxt, Object value) A value has been seen.
-
Constructor Details
-
Indexer2
Build a new Indexer.- Parameters:
file- the file to be processedindexStore- the IndexStore to write to- Throws:
FileNotFoundException
-
-
Method Details
-
getReader
Retrieve the reader that can be safely used to index this file.- Returns:
- the CountedBufferedReader that should be processed
-
startRecord
Description copied from interface:TagValueListenerA new record is about to start.- Specified by:
startRecordin interfaceTagValueListener
-
startTag
Description copied from interface:TagValueListenerStart a new tag.- Specified by:
startTagin interfaceTagValueListener- Parameters:
tag- the Object representing the new tag
-
value
Description copied from interface:TagValueListenerA value has been seen.- Specified by:
valuein interfaceTagValueListener- Parameters:
ctxt- a TagValueContext that could be used to push a sub-documentvalue- the value Object observed
-
endTag
Description copied from interface:TagValueListenerEnd the current tag.- Specified by:
endTagin interfaceTagValueListener
-
endRecord
Description copied from interface:TagValueListenerThe current record has ended.- Specified by:
endRecordin interfaceTagValueListener- Throws:
ParserException- if the record can not be ended
-