org.bibop.xml.xforge
Class AbstractElement

java.lang.Object
  |
  +--org.bibop.xml.xforge.AbstractElement
All Implemented Interfaces:
org.xml.sax.ContentHandler, Element, org.xml.sax.ext.LexicalHandler, PrefixesMonitor, XMLConsumer, XMLProducer
Direct Known Subclasses:
AttributeElement, AutomationElement, ConditionalElement, DeclareElement, EvaluateElement, GetVariableElement, ImportElement, IncludeElement, ParameterElement, ProcessElement, SetVariableElement, TagElement, TestEvaluateElement

public abstract class AbstractElement
extends java.lang.Object
implements Element

A default implementation of SAX events processing, compiling, caching and so on.

Version:
1.0
Author:
Alberto Garoffolo

Field Summary
private  java.util.List activePrefixes
           
protected  org.xml.sax.ContentHandler contentHandler
           
protected  org.xml.sax.ext.LexicalHandler lexicalHandler
           
(package private)  PrefixesMonitor parentPrefixesMonitor
           
protected  ProcessingOptions po
           
protected  java.io.ByteArrayOutputStream saxEvents
           
protected  XMLExtendedCompiler xmlCompiler
           
 
Constructor Summary
private AbstractElement()
          Not to be used
  AbstractElement(org.xml.sax.Attributes attrs, ProcessingOptions aPO)
          Build the object using the Attributes list
  AbstractElement(java.lang.String uri, java.lang.String localName, org.xml.sax.Attributes attrs, ProcessingOptions aPO)
           
 
Method Summary
 void characters(char[] ch, int start, int len)
          Receive notification of character data.
 void comment(char[] ch, int start, int len)
          Report an XML comment anywhere in the document.
 void end(java.lang.String element)
           
 void endCDATA()
          Report the end of a CDATA section.
 void endDocument()
          Receive notification of the end of a document.
 void endDTD()
          Report the end of DTD declarations.
 void endElement(java.lang.String uri, java.lang.String loc, java.lang.String raw)
          Receive notification of the end of an element.
 void endEntity(java.lang.String name)
          Report the end of an entity.
 void endPrefixMapping(java.lang.String prefix)
          End the scope of a prefix-URI mapping.
protected  void flushSAXCache()
          Utility method to flush the cached events.
 java.util.List getActivePrefixes()
           
 void ignorableWhitespace(char[] ch, int start, int len)
          Receive notification of ignorable whitespace in element content.
 void output(java.lang.String in)
           
 void output(java.lang.String element, java.lang.String in)
           
 void processingInstruction(java.lang.String target, java.lang.String data)
          Receive notification of a processing instruction.
 void setConsumer(XMLConsumer xmlConsumer)
          Sets the xmlconsumer that will receive our SAX events
 void setContentHandler(org.xml.sax.ContentHandler cHandler)
          Set the ContentHandler that will receive XML data.
 void setDocumentLocator(org.xml.sax.Locator locator)
          Receive an object for locating the origin of SAX document events.
 void setLexicalHandler(org.xml.sax.ext.LexicalHandler lHandler)
          Set the LexicalHandler that will receive XML data.
 void setParent(XMLConsumer xmlConsumer)
          Sets the xmlconsumer that will receive our SAX events
 void setParentPrefixesMonitor(PrefixesMonitor parent)
           
 void skippedEntity(java.lang.String name)
          Receive notification of a skipped entity.
 void start(java.lang.String element)
           
 void startCDATA()
          Report the start of a CDATA section.
 void startDocument()
          Receive notification of the beginning of a document.
 void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
          Report the start of DTD declarations, if any.
 void startElement(java.lang.String uri, java.lang.String loc, java.lang.String raw, org.xml.sax.Attributes a)
          Receive notification of the beginning of an element.
 void startEntity(java.lang.String name)
          Report the beginning of an entity.
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
          Begin the scope of a prefix-URI Namespace mapping.
abstract  void toSax()
          Must be implemented by the extending classes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

contentHandler

protected org.xml.sax.ContentHandler contentHandler

lexicalHandler

protected org.xml.sax.ext.LexicalHandler lexicalHandler

xmlCompiler

protected XMLExtendedCompiler xmlCompiler

saxEvents

protected java.io.ByteArrayOutputStream saxEvents

activePrefixes

private java.util.List activePrefixes

parentPrefixesMonitor

PrefixesMonitor parentPrefixesMonitor

po

protected ProcessingOptions po
Constructor Detail

AbstractElement

private AbstractElement()
Not to be used


AbstractElement

public AbstractElement(org.xml.sax.Attributes attrs,
                       ProcessingOptions aPO)
                throws IllegalElementException
Build the object using the Attributes list

Parameters:
attrs - the Attributes list
Throws:
IllegalElementException - Invalid x:forge element declaration

AbstractElement

public AbstractElement(java.lang.String uri,
                       java.lang.String localName,
                       org.xml.sax.Attributes attrs,
                       ProcessingOptions aPO)
                throws IllegalElementException
Method Detail

setParent

public void setParent(XMLConsumer xmlConsumer)
               throws org.xml.sax.SAXException
Sets the xmlconsumer that will receive our SAX events

Specified by:
setParent in interface Element
Parameters:
xmlConsumer -
Throws:
XForgeException
org.xml.sax.SAXException

setConsumer

public void setConsumer(XMLConsumer xmlConsumer)
                 throws org.xml.sax.SAXException
Sets the xmlconsumer that will receive our SAX events

Specified by:
setConsumer in interface XMLProducer
Parameters:
xmlConsumer -
Throws:
XForgeException
org.xml.sax.SAXException

setContentHandler

public void setContentHandler(org.xml.sax.ContentHandler cHandler)
                       throws org.xml.sax.SAXException
Description copied from interface: XMLProducer
Set the ContentHandler that will receive XML data.

Specified by:
setContentHandler in interface XMLProducer
org.xml.sax.SAXException

setLexicalHandler

public void setLexicalHandler(org.xml.sax.ext.LexicalHandler lHandler)
                       throws org.xml.sax.SAXException
Description copied from interface: XMLProducer
Set the LexicalHandler that will receive XML data.

Specified by:
setLexicalHandler in interface XMLProducer
org.xml.sax.SAXException

getActivePrefixes

public java.util.List getActivePrefixes()
                                 throws XForgeException
Specified by:
getActivePrefixes in interface PrefixesMonitor
XForgeException

setParentPrefixesMonitor

public void setParentPrefixesMonitor(PrefixesMonitor parent)
                              throws XForgeException
Specified by:
setParentPrefixesMonitor in interface PrefixesMonitor
Parameters:
parent -
Throws:
XForgeException

flushSAXCache

protected void flushSAXCache()
                      throws org.xml.sax.SAXException
Utility method to flush the cached events.

Throws:
org.xml.sax.SAXException

toSax

public abstract void toSax()
                    throws org.xml.sax.SAXException
Must be implemented by the extending classes

Specified by:
toSax in interface XMLProducer
Throws:
org.xml.sax.SAXException

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
Receive an object for locating the origin of SAX document events.

Specified by:
setDocumentLocator in interface org.xml.sax.ContentHandler
Parameters:
locator - An object that can return the location of any SAX document event.

startDocument

public void startDocument()
                   throws org.xml.sax.SAXException
Receive notification of the beginning of a document.

Specified by:
startDocument in interface org.xml.sax.ContentHandler
org.xml.sax.SAXException

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
Receive notification of the end of a document.

Specified by:
endDocument in interface org.xml.sax.ContentHandler
org.xml.sax.SAXException

startPrefixMapping

public void startPrefixMapping(java.lang.String prefix,
                               java.lang.String uri)
                        throws org.xml.sax.SAXException
Begin the scope of a prefix-URI Namespace mapping.

Specified by:
startPrefixMapping in interface org.xml.sax.ContentHandler
Parameters:
prefix - The Namespace prefix being declared.
uri - The Namespace URI the prefix is mapped to.
org.xml.sax.SAXException

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
                      throws org.xml.sax.SAXException
End the scope of a prefix-URI mapping.

Specified by:
endPrefixMapping in interface org.xml.sax.ContentHandler
Parameters:
prefix - The prefix that was being mapping.
org.xml.sax.SAXException

startElement

public void startElement(java.lang.String uri,
                         java.lang.String loc,
                         java.lang.String raw,
                         org.xml.sax.Attributes a)
                  throws org.xml.sax.SAXException
Receive notification of the beginning of an element.

Specified by:
startElement in interface org.xml.sax.ContentHandler
Parameters:
uri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
loc - The local name (without prefix), or the empty string if Namespace processing is not being performed.
raw - The raw XML 1.0 name (with prefix), or the empty string if raw names are not available.
a - The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object.
org.xml.sax.SAXException

endElement

public void endElement(java.lang.String uri,
                       java.lang.String loc,
                       java.lang.String raw)
                throws org.xml.sax.SAXException
Receive notification of the end of an element.

Specified by:
endElement in interface org.xml.sax.ContentHandler
Parameters:
uri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
loc - The local name (without prefix), or the empty string if Namespace processing is not being performed.
raw - The raw XML 1.0 name (with prefix), or the empty string if raw names are not available.
org.xml.sax.SAXException

characters

public void characters(char[] ch,
                       int start,
                       int len)
                throws org.xml.sax.SAXException
Receive notification of character data.

Specified by:
characters in interface org.xml.sax.ContentHandler
Parameters:
ch - The characters from the XML document.
start - The start position in the array.
len - The number of characters to read from the array.
org.xml.sax.SAXException

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int start,
                                int len)
                         throws org.xml.sax.SAXException
Receive notification of ignorable whitespace in element content.

Specified by:
ignorableWhitespace in interface org.xml.sax.ContentHandler
Parameters:
ch - The characters from the XML document.
start - The start position in the array.
len - The number of characters to read from the array.
org.xml.sax.SAXException

processingInstruction

public void processingInstruction(java.lang.String target,
                                  java.lang.String data)
                           throws org.xml.sax.SAXException
Receive notification of a processing instruction.

Specified by:
processingInstruction in interface org.xml.sax.ContentHandler
Parameters:
target - The processing instruction target.
data - The processing instruction data, or null if none was supplied.
org.xml.sax.SAXException

skippedEntity

public void skippedEntity(java.lang.String name)
                   throws org.xml.sax.SAXException
Receive notification of a skipped entity.

Specified by:
skippedEntity in interface org.xml.sax.ContentHandler
Parameters:
name - The name of the skipped entity. If it is a parameter entity, the name will begin with '%'.
org.xml.sax.SAXException

startDTD

public void startDTD(java.lang.String name,
                     java.lang.String publicId,
                     java.lang.String systemId)
              throws org.xml.sax.SAXException
Report the start of DTD declarations, if any.

Specified by:
startDTD in interface org.xml.sax.ext.LexicalHandler
Parameters:
name - The document type name.
publicId - The declared public identifier for the external DTD subset, or null if none was declared.
systemId - The declared system identifier for the external DTD subset, or null if none was declared.
org.xml.sax.SAXException

endDTD

public void endDTD()
            throws org.xml.sax.SAXException
Report the end of DTD declarations.

Specified by:
endDTD in interface org.xml.sax.ext.LexicalHandler
org.xml.sax.SAXException

startEntity

public void startEntity(java.lang.String name)
                 throws org.xml.sax.SAXException
Report the beginning of an entity.

Specified by:
startEntity in interface org.xml.sax.ext.LexicalHandler
Parameters:
name - The name of the entity. If it is a parameter entity, the name will begin with '%'.
org.xml.sax.SAXException

endEntity

public void endEntity(java.lang.String name)
               throws org.xml.sax.SAXException
Report the end of an entity.

Specified by:
endEntity in interface org.xml.sax.ext.LexicalHandler
Parameters:
name - The name of the entity that is ending.
org.xml.sax.SAXException

startCDATA

public void startCDATA()
                throws org.xml.sax.SAXException
Report the start of a CDATA section.

Specified by:
startCDATA in interface org.xml.sax.ext.LexicalHandler
org.xml.sax.SAXException

endCDATA

public void endCDATA()
              throws org.xml.sax.SAXException
Report the end of a CDATA section.

Specified by:
endCDATA in interface org.xml.sax.ext.LexicalHandler
org.xml.sax.SAXException

comment

public void comment(char[] ch,
                    int start,
                    int len)
             throws org.xml.sax.SAXException
Report an XML comment anywhere in the document.

Specified by:
comment in interface org.xml.sax.ext.LexicalHandler
Parameters:
ch - An array holding the characters in the comment.
start - The starting position in the array.
len - The number of characters to use from the array.
org.xml.sax.SAXException

output

public void output(java.lang.String in)
            throws org.xml.sax.SAXException
org.xml.sax.SAXException

output

public void output(java.lang.String element,
                   java.lang.String in)
            throws org.xml.sax.SAXException
org.xml.sax.SAXException

start

public void start(java.lang.String element)
           throws org.xml.sax.SAXException
org.xml.sax.SAXException

end

public void end(java.lang.String element)
         throws org.xml.sax.SAXException
org.xml.sax.SAXException


Copyright © 2003 Bibop Research International. All Rights Reserved.