dk.statsbiblioteket.doms.summa.oai
Class ListRecordsResponseSAXParser

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by org.xml.sax.ext.DefaultHandler2
          extended by dk.statsbiblioteket.doms.summa.oai.ListRecordsResponseSAXParser
All Implemented Interfaces:
java.lang.Iterable<Record>, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, org.xml.sax.ext.DeclHandler, org.xml.sax.ext.EntityResolver2, org.xml.sax.ext.LexicalHandler

public class ListRecordsResponseSAXParser
extends org.xml.sax.ext.DefaultHandler2
implements java.lang.Iterable<Record>

A SAX parser fine tuned for parsing the result of a ListRecordsResponse.

Version:
summaStorage-0.2 - build date 01/29/2007 11:57

Nested Class Summary
private  class ListRecordsResponseSAXParser.IteratorTerminator
           
private  class ListRecordsResponseSAXParser.ResultSetIterator
           
 
Field Summary
private  java.lang.String _currentDate
           
private  java.lang.String _currentID
           
private  Record.State _currentState
           
protected  java.lang.StringBuffer buf
           
private  OAIDateFormat dateFormat
           
static java.lang.String DEFAULT_NAMESPACE
           
static java.lang.String DUBLINCORE_NAMESPACE
           
protected  boolean inDateStamp
           
protected  boolean inHeader
           
protected  boolean inIdentifier
           
protected  boolean inRecord
           
protected  boolean inRequest
           
protected  boolean inResponseDate
           
protected  boolean inResumptionToken
           
private  Log log
           
protected  java.util.Map<java.lang.String,java.lang.String> namespace
           
private  int namespaceNumerator
           
static java.lang.String OAI_DC_NAMESPACE
           
protected  java.util.concurrent.ArrayBlockingQueue<Record> q
           
private static java.lang.String recordLead
           
private  Response response
           
private  java.lang.String responseDate
           
private  java.lang.String resumptionToken
           
private  java.lang.String serviceURL
           
private  IdentifyResponse targetID
           
private  java.lang.String verb
           
static java.lang.String XSI_SCHEMA_INSTANCE
           
 
Constructor Summary
ListRecordsResponseSAXParser(Response response, IdentifyResponse id)
           
 
Method Summary
 void characters(char[] ch, int start, int length)
           
private  void clearBuffers()
           
 void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
           
protected  java.lang.String getPrefix(java.lang.String uri)
           
 java.lang.String getResponseDate()
           
 java.lang.String getResumptionToken()
          Get the resumption token for the ListRecords request.
 java.lang.String getServiceURL()
           
 java.lang.String getVerb()
           
 java.util.Iterator<Record> iterator()
           
 void parse()
           
 void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
           
protected  java.lang.String xmlEncodeString(java.lang.String s)
           
protected  java.lang.String xmlEscapeChars(char[] c, int start, int len)
           
 
Methods inherited from class org.xml.sax.ext.DefaultHandler2
attributeDecl, comment, elementDecl, endCDATA, endDTD, endEntity, externalEntityDecl, getExternalSubset, internalEntityDecl, resolveEntity, resolveEntity, startCDATA, startDTD, startEntity
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

recordLead

private static final java.lang.String recordLead
See Also:
Constant Field Values

DEFAULT_NAMESPACE

public static final java.lang.String DEFAULT_NAMESPACE
See Also:
Constant Field Values

DUBLINCORE_NAMESPACE

public static final java.lang.String DUBLINCORE_NAMESPACE
See Also:
Constant Field Values

OAI_DC_NAMESPACE

public static final java.lang.String OAI_DC_NAMESPACE
See Also:
Constant Field Values

XSI_SCHEMA_INSTANCE

public static final java.lang.String XSI_SCHEMA_INSTANCE
See Also:
Constant Field Values

dateFormat

private OAIDateFormat dateFormat

namespaceNumerator

private int namespaceNumerator

log

private Log log

buf

protected java.lang.StringBuffer buf

namespace

protected java.util.Map<java.lang.String,java.lang.String> namespace

q

protected java.util.concurrent.ArrayBlockingQueue<Record> q

response

private Response response

inRecord

protected boolean inRecord

inHeader

protected boolean inHeader

inResponseDate

protected boolean inResponseDate

inRequest

protected boolean inRequest

inIdentifier

protected boolean inIdentifier

inDateStamp

protected boolean inDateStamp

inResumptionToken

protected boolean inResumptionToken

_currentID

private java.lang.String _currentID

_currentDate

private java.lang.String _currentDate

_currentState

private Record.State _currentState

responseDate

private java.lang.String responseDate

serviceURL

private java.lang.String serviceURL

verb

private java.lang.String verb

resumptionToken

private java.lang.String resumptionToken

targetID

private IdentifyResponse targetID
Constructor Detail

ListRecordsResponseSAXParser

public ListRecordsResponseSAXParser(Response response,
                                    IdentifyResponse id)
Method Detail

parse

public void parse()

iterator

public java.util.Iterator<Record> iterator()
Specified by:
iterator in interface java.lang.Iterable<Record>

startElement

public void startElement(java.lang.String uri,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes atts)
                  throws org.xml.sax.SAXException
Specified by:
startElement in interface org.xml.sax.ContentHandler
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

endElement

public void endElement(java.lang.String uri,
                       java.lang.String localName,
                       java.lang.String qName)
                throws org.xml.sax.SAXException
Specified by:
endElement in interface org.xml.sax.ContentHandler
Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

xmlEscapeChars

protected java.lang.String xmlEscapeChars(char[] c,
                                          int start,
                                          int len)

xmlEncodeString

protected java.lang.String xmlEncodeString(java.lang.String s)

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
Specified by:
characters in interface org.xml.sax.ContentHandler
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

clearBuffers

private void clearBuffers()

getPrefix

protected java.lang.String getPrefix(java.lang.String uri)

getResponseDate

public java.lang.String getResponseDate()

getVerb

public java.lang.String getVerb()

getServiceURL

public java.lang.String getServiceURL()

getResumptionToken

public java.lang.String getResumptionToken()
Get the resumption token for the ListRecords request.

Returns:
the resumption token or an empty string if there is no resumption token