Class ABIFParser
- Direct Known Subclasses:
ABIFChromatogram.Parser
Briefly, the format consists of a set of named fixed-length "tagged data
records" which may contain data themselves, or pointers to data elsewhere
in the file. This class reads these records and exposes them to subclasses
through the getDataRecord(java.lang.String, int)
method. The attributes of the records as
described in Tibbets' paper are exposed through public (final) fields of
ABIFParser.TaggedDataRecord
instances.
If a record only contains a pointer to the desired data (see
ABIFParser.TaggedDataRecord.hasOffsetData
, subclasses may get
at the raw data by using ABIFParser.TaggedDataRecord.offsetData
:
This parser provides methods and classes for dealing with the files as streams or local files (local files being more memory-efficient).
- Author:
- Rhett Sutphin (UI CBCB), Richard Holland
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
static class
An aggregate immutable type for an ABIF tagged data record. -
Constructor Summary
ConstructorsConstructorDescriptionABIFParser
(File f) Creates a new ABIFParser for a file.Creates a new ABIFParser for an input stream.ABIFParser
(ABIFParser.DataAccess toParse) Creates a new ABIFParser for the specifiedABIFParser.DataAccess
object. -
Method Summary
Modifier and TypeMethodDescriptionstatic Symbol
decodeDNAToken
(char token) Decodes a character into aSymbol
in the DNA alphabet.Obtain all data records.final ABIFParser.DataAccess
Returns the accessor for the raw data being parsed by this parser.getDataRecord
(String tagName, int tagNumber) Get the entry from the file TOC with the given name and tag number.
-
Constructor Details
-
ABIFParser
Creates a new ABIFParser for a file.- Throws:
IOException
-
ABIFParser
Creates a new ABIFParser for an input stream. Note that the stream will be wrapped in aCachingInputStream
if it isn't one already. If it is, it will be seeked to 0.- Throws:
IOException
-
ABIFParser
Creates a new ABIFParser for the specifiedABIFParser.DataAccess
object. If you need to read from something other than a file or a stream, you'll have to implement aABIFParser.DataAccess
-implementing class wrapping your source and then pass an instance to this constructor.- Throws:
IOException
-
-
Method Details
-
getDataAccess
Returns the accessor for the raw data being parsed by this parser. -
decodeDNAToken
Decodes a character into aSymbol
in the DNA alphabet. Uses a definition of characters that is compatible with the ABI format.- Parameters:
token
- the character to decode- Throws:
IllegalSymbolException
- when token isn't in{ a, A, c, C, g, G, t, T, n, N, - }
-
getDataRecord
public ABIFParser.TaggedDataRecord getDataRecord(String tagName, int tagNumber) throws IllegalArgumentException, IllegalStateException Get the entry from the file TOC with the given name and tag number.- Parameters:
tagName
- the four-character string name of the desired data recordtagNumber
- which one of the tags with this name to return (must be positive)- Returns:
- the requested data record, or null if no such record exists
- Throws:
IllegalArgumentException
- if tagName is the wrong length or tagNumber is 0 or negativeIllegalStateException
- if the initial parsing is not complete
-
getAllDataRecords
Obtain all data records. Keys of the map are strings consisting of tag names with tag numbers concatenated immediately afterwards. Values are TaggedDataRecord objects. The map has no particular order and so cannot be relied on to iterate over records in the same order they were read from the file.- Returns:
- the map of all data records.
-