org.biojava.bio.program.tagvalue
Interface TagValueListener

All Known Subinterfaces:
TagValueWrapper
All Known Implementing Classes:
AbstractWrapper, Aggregator, AnnotationBuilder, Echo, Indexer, Indexer2, MultiTagger, RegexFieldFinder, SimpleTagValueWrapper, StateMachine, StateMachine.SimpleStateListener, TagDelegator, TagDropper, TagRenamer, ValueChanger

public interface TagValueListener

An object that wishes to be informed of events during the parsing of a file.

This interface is similar in spirit to the SAX interfaces for parsing XML. Many of the methods will always be called in appropriately nested pairs. Entire records will be bracketed by a startRecord and endRecord pair. Within these, any number of startTag and endTag pairs may be called. Within a tag pair, any number of value invocations may be called. If a value is complex and requires parsing as a sub-entry, then the TagValueContext interface can be used to push a new TagValueParser and listener pair onto the parser stack. This will result in the pushed listener recieving a start/end document notification encapsulating the entire sub-set of events generated by the parser using the pushed TagValueParser to process the sub-document.

Since:
1.2
Author:
Matthew Pocock

Method Summary
 void endRecord()
          The current record has ended.
 void endTag()
          End the current tag.
 void startRecord()
          A new record is about to start.
 void startTag(Object tag)
          Start a new tag.
 void value(TagValueContext ctxt, Object value)
          A value has been seen.
 

Method Detail

startRecord

void startRecord()
                 throws ParserException
A new record is about to start.

Throws:
ParserException - if the record can not be started

endRecord

void endRecord()
               throws ParserException
The current record has ended.

Throws:
ParserException - if the record can not be ended

startTag

void startTag(Object tag)
              throws ParserException
Start a new tag.

Parameters:
tag - the Object representing the new tag
Throws:
ParserException - if the tag could not be started

endTag

void endTag()
            throws ParserException
End the current tag.

Throws:
ParserException - if the tag could not be ended

value

void value(TagValueContext ctxt,
           Object value)
           throws ParserException
A value has been seen.

Parameters:
ctxt - a TagValueContext that could be used to push a sub-document
value - the value Object observed
Throws:
ParserException - if the value could not be processed