de.saar.chorus.domgraph.codec
Class InputCodec
Object
InputCodec
- Direct Known Subclasses:
- Chain, DomconOzInputCodec, DomgraphGxlInputCodec, GlueInputCodec, HolesemComsemInputCodec, MrsPrologInputCodec, MrsXmlInputCodec
public abstract class InputCodec
- extends Object
The abstract base class for all input codecs. Derived classes should
implement the method decode and set the codec's name and
extension in the constructor.
- Author:
- Alexander Koller
|
Method Summary |
abstract void |
decode(Reader reader,
DomGraph graph,
NodeLabels labels)
Reads an USR representation from a Reader. |
Reader |
getReaderForSpecification(String spec)
Determines a Reader from which the USR specified
by the spec will be read. |
| Methods inherited from class Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
InputCodec
public InputCodec()
decode
public abstract void decode(Reader reader,
DomGraph graph,
NodeLabels labels)
throws IOException,
ParserException,
MalformedDomgraphException
- Reads an USR representation from a
Reader. This method
converts the USR into an equivalent labelled dominance graph and
stores this graph in a DomGraph and the labels in
a NodeLabels object. You must implement this
method in every concrete input codec.
The graph and labels objects passed to this method need not be
empty; it is the responsibility of this method to clear them first.
- Parameters:
reader - the reader from which the USR is readgraph - the dominance graph into which the USR is convertedlabels - the node labels of the labelled dominance graph
- Throws:
IOException - if an I/O error occurred while reading from reader
ParserException - if a syntactic error occurred while parsing the USR
MalformedDomgraphException - if a semantic error occurred, i.e. the USR
cannot be converted into a dominance graph
getReaderForSpecification
public Reader getReaderForSpecification(String spec)
throws IOException
- Determines a
Reader from which the USR specified
by the spec will be read. In this default implementation,
spec is a filename, and the reader will be a
FileReader for this file. You may override this method
with your own implementation; the spec that is passed to
your method will then be what the user specified in the command-line
call "utool solve -I yourcodec <spec>". See the Chain
for an example.
- Parameters:
spec - a filename
- Returns:
- a reader for reading from this file
- Throws:
IOException - no file with the given name exists