public class TabIndexStore extends Object implements IndexStore, Serializable
Implements IndexStore as a serialized file for the java data and a tab-delimited file of offsets.
Use the constructor to create a new index store. Use the static factory method open() to load an existing store.
The tab-delimited file looks like:fileNumber \t offset \t id \n
Constructor and Description |
---|
TabIndexStore(File storeFile,
File indexFile,
String name,
SequenceFormat format,
SequenceBuilderFactory sbFactory,
SymbolTokenization symbolParser)
Create a new TabIndexStore.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addFile(File f) |
void |
commit()
Commit the stored indices to permanent storage.
|
protected void |
commitStore() |
Index |
fetch(String id)
Fetch an Index based upon an ID.
|
protected int |
getFileIndex(File file) |
Set |
getFiles()
Retrieve the Set of files that are currently indexed.
|
SequenceFormat |
getFormat()
Retrieve the format of the index file.
|
Set |
getIDs()
Retrieve the set of all current IDs.
|
String |
getName()
Retrieve the name of this store.
|
SequenceBuilderFactory |
getSBFactory()
Retrieve the SequenceBuilderFactory used to build Sequence instances.
|
SymbolTokenization |
getSymbolParser()
Retrieve the symbol parser used to turn the sequence characters
into Symobl objects.
|
protected void |
initialize() |
static TabIndexStore |
open(File storeFile)
Open an existing index store.
|
void |
rollback()
Discard all uncommited changes.
|
void |
store(Index indx)
Add the Index to the store.
|
public TabIndexStore(File storeFile, File indexFile, String name, SequenceFormat format, SequenceBuilderFactory sbFactory, SymbolTokenization symbolParser) throws IOException, BioException
The store file and index file must not exist. This is to prevent you from accidentally destroying an existing index.
storeFile
- the file that will be used to persist this index storeindexFile
- the file that will hold the actual indeciesname
- the name that will be used by the database backed by
this indexformat
- the SequenceFormat for files being indexedsbFactory
- the SequenceBuilderFactory used in building sequencessymbolParser
- the SymbolTokenization to useIOException
- if there was a problem writing the filesBioException
- if any of the parameters were not acceptablepublic static TabIndexStore open(File storeFile) throws IOException
storeFile
- the File encapsulating the storeIOException
- if the storeFile could not be processedpublic void store(Index indx) throws IllegalIDException, BioException
IndexStore
This method should be transactional. If the store fails, the IndexStore should be left in its original state.
If the file of the Index is not known yet, it is the responsibility of the IndexStore to add it to the set returned by getFiles.
store
in interface IndexStore
indx
- the Index to addIllegalIDException
- if the index has an invalid ID fieldBioException
- if the store failedpublic Index fetch(String id) throws IllegalIDException, BioException
IndexStore
fetch
in interface IndexStore
id
- The ID of the sequence Index to retrieveIllegalIDException
- if the ID couldn't be foundBioException
- if the fetch fails in the underlying storage mechanismpublic void commit() throws BioException
IndexStore
commit
in interface IndexStore
BioException
- if for any reason the commit failspublic void rollback()
IndexStore
rollback
in interface IndexStore
public String getName()
IndexStore
getName
in interface IndexStore
public Set getIDs()
IndexStore
This set should either be immutable, or modifiable totally separately from the IndexStore.
getIDs
in interface IndexStore
public Set getFiles()
IndexStore
getFiles
in interface IndexStore
public SequenceFormat getFormat()
IndexStore
This set should either be immutable, or modifiable totally separately from the IndexStore.
getFormat
in interface IndexStore
public SequenceBuilderFactory getSBFactory()
IndexStore
getSBFactory
in interface IndexStore
public SymbolTokenization getSymbolParser()
IndexStore
getSymbolParser
in interface IndexStore
protected void commitStore() throws IOException
IOException
protected int getFileIndex(File file)
protected void initialize() throws IOException
IOException
Copyright © 2014 BioJava. All rights reserved.