org.biojava.bio.program.sax
Class FastaSearchSAXParser

java.lang.Object
  extended by org.biojava.bio.program.sax.FastaSearchSAXParser
All Implemented Interfaces:
SearchContentHandler, XMLReader

public class FastaSearchSAXParser
extends Object
implements SearchContentHandler

FastaSearchSAXParser is a SAX2 compliant parser for '-m 10' format output from the the Fasta search program (see the Fasta documentation for details of this format).

Versions of Fasta supported are as follows. Note that the compile time option -DM10_CONS should be used to allow correct reporting of the number of matches in HSPSummary elements

The SAX2 events produced are as if the input to the parser was an XML file validating against the BioJava BlastLikeDataSetCollection DTD. There is no requirement for an intermediate conversion of native output to XML format.

Since:
1.2
Author:
Keith James

Field Summary
protected  int iState
           
protected  String oFullNamespacePrefix
           
protected  ContentHandler oHandler
           
protected  String oNamespacePrefix
           
protected  boolean tNamespacePrefixes
           
protected  boolean tNamespaces
           
 
Constructor Summary
FastaSearchSAXParser()
          Creates a new FastaSearchSAXParser instance.
 
Method Summary
 void addHitProperty(Object key, Object value)
          The addHitProperty method adds a key/value pair containing some property of a particular hit.
 void addPrefixMapping(String poPrefix, String poURI)
          Adds a namespace prefix to URI mapping as (key,value) pairs.
 void addSearchProperty(Object key, Object value)
          The addSearchProperty method adds a key/value pair containing some property of the overall search result.
 void addSubHitProperty(Object key, Object value)
          The addSubHitProperty method adds a key/value pair containing some property of a particular subhit.
protected  void changeState(int piState)
          Centralise chaining of iState field to help with debugging.
protected  void characters(char[] ch, int start, int length)
          Utility method to centralize the sending of a SAX characters message a document handler.
protected  void endElement(org.biojava.bio.program.sax.QName poQName)
          Utility method to centralize the sending of a SAX endElement message a document handler.
 void endHeader()
          The endHeader method indicates the end of a formatted header.
 void endHit()
          The endHit method indicates the end of a formatted hit.
 void endSearch()
          The endSearch method indicates the end of useful search information.
 void endSubHit()
          The endSubHit method indicates the end of a formatted subhit.
 ContentHandler getContentHandler()
          Return the content handler.
protected  BufferedReader getContentStream(InputSource poSource)
          Create a stream from an an InputSource, picking the correct stream according to order of precedance.
 DTDHandler getDTDHandler()
          Do-nothing implementation of interface method
 EntityResolver getEntityResolver()
          Do-nothing implementation of interface method
 ErrorHandler getErrorHandler()
          Do-nothing implementation of interface method
 boolean getFeature(String poName)
          Do-nothing implementation of interface method
 boolean getMoreSearches()
          getMoreSearches returns the state of the SearchContentHandler with respect to further searches from its data source.
 String getNamespacePrefix()
          Describe getNamespacePrefix method here.
 boolean getNamespacePrefixes()
          Support SAX2 configuration of namespace support of parser.
 boolean getNamespaces()
          Support SAX2 configuration of namespace support of parser.
 Object getProperty(String name)
          Do-nothing implementation of interface method
 String getURIFromPrefix(String poPrefix)
          Gets the URI for a namespace prefix, given that prefix, or null if the prefix is not recognised.
 void parse(InputSource source)
          Do-nothing implementation of interface method
 void parse(String poSystemId)
          Full implementation of interface method.
 String prefix(String poElementName)
          Given an unprefixed element name, returns a new element name with a namespace prefix
 void setContentHandler(ContentHandler poHandler)
          Allow an application to register a content event handler.
 void setDatabaseID(String databaseID)
          setDatabaseID identifies the database searched by a name, ID or URN.
 void setDTDHandler(DTDHandler handler)
          Do-nothing implementation of interface method
 void setEntityResolver(EntityResolver resolver)
          Do-nothing implementation of interface method
 void setErrorHandler(ErrorHandler handler)
          Do-nothing implementation of interface method
 void setFeature(String poName, boolean value)
          Handles support for ReasoningDomain and Namespace-prefixes
 void setMoreSearches(boolean value)
          setMoreSearches sets the state of the SearchContentHandler's expectation of receiving more results.
 void setNamespacePrefix(String poPrefix)
           
 void setProperty(String name, Object value)
          Do-nothing implementation of interface method
 void setQueryID(String queryID)
          setQueryID identifies the query sequence by a name, ID or URN.
 void setQuerySeq(String identifier)
          Deprecated. use setQueryID instead.
 void setSubjectDB(String identifier)
          Deprecated. use setDatabaseID instead.
protected  void startElement(org.biojava.bio.program.sax.QName poQName, Attributes atts)
          Utility method to centralize sending of a SAX startElement message to document handler
 void startHeader()
          The startHeader method indicates the start of a formatted header.
 void startHit()
          The startHit method indicates the start of a formatted hit.
 void startSearch()
          The startSearch method indicates the start of useful search information.
 void startSubHit()
          The startSubHit method indicates the start of a formatted subhit.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

oHandler

protected ContentHandler oHandler

tNamespaces

protected boolean tNamespaces

tNamespacePrefixes

protected boolean tNamespacePrefixes

oNamespacePrefix

protected String oNamespacePrefix

oFullNamespacePrefix

protected String oFullNamespacePrefix

iState

protected int iState
Constructor Detail

FastaSearchSAXParser

public FastaSearchSAXParser()
Creates a new FastaSearchSAXParser instance.

Method Detail

parse

public void parse(InputSource source)
           throws IOException,
                  SAXException
Do-nothing implementation of interface method

Specified by:
parse in interface XMLReader
Throws:
IOException
SAXException

getMoreSearches

public boolean getMoreSearches()
Description copied from interface: SearchContentHandler
getMoreSearches returns the state of the SearchContentHandler with respect to further searches from its data source. Used for handling streams of search results.

Specified by:
getMoreSearches in interface SearchContentHandler
Returns:
a boolean value.

setMoreSearches

public void setMoreSearches(boolean value)
Description copied from interface: SearchContentHandler
setMoreSearches sets the state of the SearchContentHandler's expectation of receiving more results. Used for handling streams of search results.

Specified by:
setMoreSearches in interface SearchContentHandler
Parameters:
value - a boolean value.

setQuerySeq

public void setQuerySeq(String identifier)
Deprecated. use setQueryID instead.

setQuerySeq identifies the query sequence by a name, ID or URN.

Parameters:
identifier - a String which should be an unique identifer for the sequence.

setQueryID

public void setQueryID(String queryID)
Description copied from interface: SearchContentHandler
setQueryID identifies the query sequence by a name, ID or URN.

Specified by:
setQueryID in interface SearchContentHandler
Parameters:
queryID - a String which should be an unique identifer for the sequence.

setSubjectDB

public void setSubjectDB(String identifier)
Deprecated. use setDatabaseID instead.

setSubjectDB identifies the database searched by a name, ID or URN.

Parameters:
identifier - a String which should be an unique identifier for the database searched.

setDatabaseID

public void setDatabaseID(String databaseID)
Description copied from interface: SearchContentHandler
setDatabaseID identifies the database searched by a name, ID or URN.

Specified by:
setDatabaseID in interface SearchContentHandler
Parameters:
databaseID - a String which should be an unique identifier for the database searched.

startSearch

public void startSearch()
Description copied from interface: SearchContentHandler
The startSearch method indicates the start of useful search information.

Specified by:
startSearch in interface SearchContentHandler

addSearchProperty

public void addSearchProperty(Object key,
                              Object value)
Description copied from interface: SearchContentHandler
The addSearchProperty method adds a key/value pair containing some property of the overall search result.

Specified by:
addSearchProperty in interface SearchContentHandler
Parameters:
key - an Object.
value - an Object.

endSearch

public void endSearch()
Description copied from interface: SearchContentHandler
The endSearch method indicates the end of useful search information.

Specified by:
endSearch in interface SearchContentHandler

startHeader

public void startHeader()
Description copied from interface: SearchContentHandler
The startHeader method indicates the start of a formatted header. This usually contains information relevant to the search as a whole.

Specified by:
startHeader in interface SearchContentHandler

endHeader

public void endHeader()
Description copied from interface: SearchContentHandler
The endHeader method indicates the end of a formatted header.

Specified by:
endHeader in interface SearchContentHandler

startHit

public void startHit()
Description copied from interface: SearchContentHandler
The startHit method indicates the start of a formatted hit. This could be a single line, or a block of lines.

Specified by:
startHit in interface SearchContentHandler

addHitProperty

public void addHitProperty(Object key,
                           Object value)
Description copied from interface: SearchContentHandler
The addHitProperty method adds a key/value pair containing some property of a particular hit.

Specified by:
addHitProperty in interface SearchContentHandler
Parameters:
key - an Object.
value - an Object.

endHit

public void endHit()
Description copied from interface: SearchContentHandler
The endHit method indicates the end of a formatted hit.

Specified by:
endHit in interface SearchContentHandler

startSubHit

public void startSubHit()
Description copied from interface: SearchContentHandler
The startSubHit method indicates the start of a formatted subhit. There may be zero or more of these per hit.

Specified by:
startSubHit in interface SearchContentHandler

addSubHitProperty

public void addSubHitProperty(Object key,
                              Object value)
Description copied from interface: SearchContentHandler
The addSubHitProperty method adds a key/value pair containing some property of a particular subhit.

Specified by:
addSubHitProperty in interface SearchContentHandler
Parameters:
key - an Object.
value - an Object.

endSubHit

public void endSubHit()
Description copied from interface: SearchContentHandler
The endSubHit method indicates the end of a formatted subhit.

Specified by:
endSubHit in interface SearchContentHandler

setContentHandler

public void setContentHandler(ContentHandler poHandler)
Allow an application to register a content event handler. If the application does not register a content handler, all content events reported by the SAX parser will be silently ignored.

Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.

Specified by:
setContentHandler in interface XMLReader
Parameters:
poHandler - a ContentHandler The XML content handler
Throws:
NullPointerException - If the handler argument is null

getContentHandler

public ContentHandler getContentHandler()
Return the content handler.

Specified by:
getContentHandler in interface XMLReader
Returns:
a ContentHandler The current content handler, or null if none has been registered.

parse

public void parse(String poSystemId)
           throws IOException,
                  SAXException
Full implementation of interface method.

Specified by:
parse in interface XMLReader
Throws:
IOException
SAXException

getFeature

public boolean getFeature(String poName)
                   throws SAXNotRecognizedException,
                          SAXNotSupportedException
Do-nothing implementation of interface method

Specified by:
getFeature in interface XMLReader
Throws:
SAXNotRecognizedException
SAXNotSupportedException

setFeature

public void setFeature(String poName,
                       boolean value)
                throws SAXNotRecognizedException,
                       SAXNotSupportedException
Handles support for ReasoningDomain and Namespace-prefixes

Specified by:
setFeature in interface XMLReader
Throws:
SAXNotRecognizedException
SAXNotSupportedException

getProperty

public Object getProperty(String name)
                   throws SAXNotRecognizedException,
                          SAXNotSupportedException
Do-nothing implementation of interface method

Specified by:
getProperty in interface XMLReader
Throws:
SAXNotRecognizedException
SAXNotSupportedException

setProperty

public void setProperty(String name,
                        Object value)
                 throws SAXNotRecognizedException,
                        SAXNotSupportedException
Do-nothing implementation of interface method

Specified by:
setProperty in interface XMLReader
Throws:
SAXNotRecognizedException
SAXNotSupportedException

setEntityResolver

public void setEntityResolver(EntityResolver resolver)
Do-nothing implementation of interface method

Specified by:
setEntityResolver in interface XMLReader

getEntityResolver

public EntityResolver getEntityResolver()
Do-nothing implementation of interface method

Specified by:
getEntityResolver in interface XMLReader

setDTDHandler

public void setDTDHandler(DTDHandler handler)
Do-nothing implementation of interface method

Specified by:
setDTDHandler in interface XMLReader

getDTDHandler

public DTDHandler getDTDHandler()
Do-nothing implementation of interface method

Specified by:
getDTDHandler in interface XMLReader

setErrorHandler

public void setErrorHandler(ErrorHandler handler)
Do-nothing implementation of interface method

Specified by:
setErrorHandler in interface XMLReader

getErrorHandler

public ErrorHandler getErrorHandler()
Do-nothing implementation of interface method

Specified by:
getErrorHandler in interface XMLReader

startElement

protected void startElement(org.biojava.bio.program.sax.QName poQName,
                            Attributes atts)
                     throws SAXException
Utility method to centralize sending of a SAX startElement message to document handler

Parameters:
poQName - a QName value
atts - an Attributes value
Throws:
SAXException - if an error occurs

endElement

protected void endElement(org.biojava.bio.program.sax.QName poQName)
                   throws SAXException
Utility method to centralize the sending of a SAX endElement message a document handler.

Parameters:
poQName - -
Throws:
SAXException - thrown if
thrown - if

characters

protected void characters(char[] ch,
                          int start,
                          int length)
                   throws SAXException
Utility method to centralize the sending of a SAX characters message a document handler.

Parameters:
ch - -
start - -
length - -
Throws:
SAXException - thrown if
thrown - if

getNamespaces

public boolean getNamespaces()
Support SAX2 configuration of namespace support of parser.


getNamespacePrefixes

public boolean getNamespacePrefixes()
Support SAX2 configuration of namespace support of parser.


addPrefixMapping

public void addPrefixMapping(String poPrefix,
                             String poURI)
Adds a namespace prefix to URI mapping as (key,value) pairs. This mapping can be looked up later to get URIs on request using the getURIFromPrefix method.

Parameters:
poPrefix - a String representation of the namespace prefix
poURI - a String representation of the URI for the namespace prefix.

getURIFromPrefix

public String getURIFromPrefix(String poPrefix)
Gets the URI for a namespace prefix, given that prefix, or null if the prefix is not recognised.

Parameters:
poPrefix - a String The namespace prefix.

setNamespacePrefix

public void setNamespacePrefix(String poPrefix)
Parameters:
poPrefix - a String value

getNamespacePrefix

public String getNamespacePrefix()
Describe getNamespacePrefix method here.

Returns:
a String value

prefix

public String prefix(String poElementName)
Given an unprefixed element name, returns a new element name with a namespace prefix

Returns:
a String value

getContentStream

protected BufferedReader getContentStream(InputSource poSource)
Create a stream from an an InputSource, picking the correct stream according to order of precedance.

Parameters:
poSource - an InputSource value
Returns:
a BufferedReader value

changeState

protected void changeState(int piState)
Centralise chaining of iState field to help with debugging. E.g. printing out value etc. All changes to iState should be made through this method.

Parameters:
piState - an int value