org.outerj.daisy.publisher.serverimpl.docpreparation
Class ContentProcessor

java.lang.Object
  extended by org.outerj.daisy.publisher.serverimpl.docpreparation.ContentProcessor
All Implemented Interfaces:
org.xml.sax.ContentHandler

public class ContentProcessor
extends java.lang.Object
implements org.xml.sax.ContentHandler

Processes special instructions in the content, such as queries and includes.

A ContentProcessor can be instantiated recursively by the IncludeProcessor: if the IncludeProcessor includes some content, it will create a new ContentProcessor and push the content through that ContentProcessor. ContentProcessors have a reference to their parent processor so that recursive includes can be detected.

From Daisy 1.5, this has been updated to perform a new publisher request for each included document.

 +--ContentProcessor---------------------------------------------+
 | +--------------+  +---------------------+  +----------------+ |
 | |QueryProcessor|->|QueryIncludeProcessor|->|IncludeProcessor| |
 | +--------------+  +---------------------+  +-------+--------+ |
 +----------------------------------------------------|----------+
         +____________________________________________|
         |
 +-------|-------------------------------------------------------+
 | +-----v--------+  +---------------------+  +----------------+ |
 | |QueryProcessor|->|QueryIncludeProcessor|->|IncludeProcessor| |
 | +--------------+  +---------------------+  +-------+--------+ |
 +----------------------------------------------------|----------+
                                                      |
                                                      v
                                                 and so on
 


Constructor Summary
ContentProcessor(org.outerj.daisy.repository.Document document, org.outerj.daisy.repository.Version version, org.xml.sax.ContentHandler consumer, PreparationPipe preparationPipe, PublisherContext publisherContext, ContentProcessor parent)
           
 
Method Summary
 void characters(char[] ch, int start, int length)
           
 void endDocument()
           
 void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)
           
 void endPrefixMapping(java.lang.String prefix)
           
 org.outerj.daisy.repository.Document getDocument()
           
 IncludesProcessor getIncludesProcessor()
           
 ContentProcessor getParent()
           
 PreparationPipe getPreparationPipe()
           
 PublisherContext getPublisherContext()
           
 org.outerj.daisy.repository.Version getVersion()
           
 void ignorableWhitespace(char[] ch, int start, int length)
           
 void processingInstruction(java.lang.String target, java.lang.String data)
           
 void setDocumentLocator(org.xml.sax.Locator locator)
           
 void setParent(ContentProcessor parent)
           
 void skippedEntity(java.lang.String name)
           
 void startDocument()
           
 void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
           
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ContentProcessor

public ContentProcessor(org.outerj.daisy.repository.Document document,
                        org.outerj.daisy.repository.Version version,
                        org.xml.sax.ContentHandler consumer,
                        PreparationPipe preparationPipe,
                        PublisherContext publisherContext,
                        ContentProcessor parent)
Parameters:
document - the document whose data is being processed through this pipe
version - the version whose data is being processed through this pipe
parent - optional, can be null
Method Detail

getParent

public ContentProcessor getParent()

setParent

public void setParent(ContentProcessor parent)

getIncludesProcessor

public IncludesProcessor getIncludesProcessor()

getPublisherContext

public PublisherContext getPublisherContext()

getPreparationPipe

public PreparationPipe getPreparationPipe()

getDocument

public org.outerj.daisy.repository.Document getDocument()

getVersion

public org.outerj.daisy.repository.Version getVersion()

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
Specified by:
endDocument in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

startDocument

public void startDocument()
                   throws org.xml.sax.SAXException
Specified by:
startDocument in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

characters

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

ignorableWhitespace

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

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
                      throws org.xml.sax.SAXException
Specified by:
endPrefixMapping in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

skippedEntity

public void skippedEntity(java.lang.String name)
                   throws org.xml.sax.SAXException
Specified by:
skippedEntity in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
Specified by:
setDocumentLocator in interface org.xml.sax.ContentHandler

processingInstruction

public void processingInstruction(java.lang.String target,
                                  java.lang.String data)
                           throws org.xml.sax.SAXException
Specified by:
processingInstruction in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

startPrefixMapping

public void startPrefixMapping(java.lang.String prefix,
                               java.lang.String uri)
                        throws org.xml.sax.SAXException
Specified by:
startPrefixMapping in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

endElement

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

startElement

public void startElement(java.lang.String namespaceURI,
                         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
Throws:
org.xml.sax.SAXException


Copyright © -2012 . All Rights Reserved.