uPortal 2.4.1
API Documentation

org.jasig.portal.serialize
Class BaseMarkupSerializer

java.lang.Object
  extended byorg.jasig.portal.serialize.BaseMarkupSerializer
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.ext.DeclHandler, org.xml.sax.DocumentHandler, DOMSerializer, org.xml.sax.DTDHandler, org.xml.sax.ext.LexicalHandler, Serializer
Direct Known Subclasses:
HTMLSerializer, TextSerializer, XMLSerializer

public abstract class BaseMarkupSerializer
extends java.lang.Object
implements org.xml.sax.ContentHandler, org.xml.sax.DocumentHandler, org.xml.sax.ext.LexicalHandler, org.xml.sax.DTDHandler, org.xml.sax.ext.DeclHandler, DOMSerializer, Serializer

Base class for a serializer supporting both DOM and SAX pretty serializing of XML/HTML/XHTML documents. Derives classes perform the method-specific serializing, this class provides the common serializing mechanisms.

The serializer must be initialized with the proper writer and output format before it can be used by calling init. The serializer can be reused any number of times, but cannot be used concurrently by two threads.

If an output stream is used, the encoding is taken from the output format (defaults to UTF-8). If a writer is used, make sure the writer uses the same encoding (if applies) as specified in the output format.

The serializer supports both DOM and SAX. DOM serializing is done by calling serialize(Document) and SAX serializing is done by firing SAX events and using the serializer as a document handler. This also applies to derived class.

If an I/O exception occurs while serializing, the serializer will not throw an exception directly, but only throw it at the end of serializing (either DOM or SAX's DocumentHandler.endDocument().

For elements that are not specified as whitespace preserving, the serializer will potentially break long text lines at space boundaries, indent lines, and serialize elements on separate lines. Line terminators will be regarded as spaces, and spaces at beginning of line will be stripped.

When indenting, the serializer is capable of detecting seemingly element content, and serializing these elements indented on separate lines. An element is serialized indented when it is the first or last child of an element, or immediate following or preceding another element.

Version:
$Revision: 1.10 $ $Date: 2004/09/21 00:30:59 $
Author:
Assaf Arkin
See Also:
Serializer, DOMSerializer

Method Summary
 org.xml.sax.ContentHandler asContentHandler()
          Return a ContentHandler interface into this serializer.
 org.xml.sax.DocumentHandler asDocumentHandler()
          Return a DocumentHandler interface into this serializer.
 DOMSerializer asDOMSerializer()
          Return a DOMSerializer interface into this serializer.
 void attributeDecl(java.lang.String eName, java.lang.String aName, java.lang.String type, java.lang.String valueDefault, java.lang.String value)
           
 void characters(char[] chars, int start, int length)
           
 void comment(char[] chars, int start, int length)
           
 void comment(java.lang.String text)
           
 void elementDecl(java.lang.String name, java.lang.String model)
           
 void endCDATA()
           
 void endDocument()
          Called at the end of the document to wrap it up.
 void endDTD()
           
 void endEntity(java.lang.String name)
           
 void endNonEscaping()
           
 void endPrefixMapping(java.lang.String prefix)
           
 void endPreserving()
           
 void externalEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
           
 void ignorableWhitespace(char[] chars, int start, int length)
           
 void internalEntityDecl(java.lang.String name, java.lang.String value)
           
 void notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
           
 void processingInstruction(java.lang.String target, java.lang.String code)
           
 void processingInstructionIO(java.lang.String target, java.lang.String code)
           
 boolean reset()
           
 void serialize(org.w3c.dom.Document doc)
          Serializes the DOM document using the previously specified writer and output format.
 void serialize(org.w3c.dom.DocumentFragment frag)
          Serializes the DOM document fragmnt using the previously specified writer and output format.
 void serialize(org.w3c.dom.Element elem)
          Serializes the DOM element using the previously specified writer and output format.
 void setDocumentLocator(org.xml.sax.Locator locator)
           
 void setOutputByteStream(java.io.OutputStream output)
          Specifies an output stream to which the document should be serialized.
 void setOutputCharStream(java.io.Writer writer)
          Specifies a writer to which the document should be serialized.
 void setOutputFormat(OutputFormat format)
          Specifies an output format for this serializer.
 void skippedEntity(java.lang.String name)
           
 void startCDATA()
           
 void startDocument()
           
 void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
           
 void startEntity(java.lang.String name)
           
 void startNonEscaping()
           
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
           
 void startPreserving()
           
 void unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.ContentHandler
endElement, startElement
 
Methods inherited from interface org.xml.sax.DocumentHandler
endElement, startElement
 

Method Detail

asDocumentHandler

public org.xml.sax.DocumentHandler asDocumentHandler()
                                              throws java.io.IOException
Description copied from interface: Serializer
Return a DocumentHandler interface into this serializer. If the serializer does not support the DocumentHandler interface, it should return null.

Specified by:
asDocumentHandler in interface Serializer
Throws:
java.io.IOException

asContentHandler

public org.xml.sax.ContentHandler asContentHandler()
                                            throws java.io.IOException
Description copied from interface: Serializer
Return a ContentHandler interface into this serializer. If the serializer does not support the ContentHandler interface, it should return null.

Specified by:
asContentHandler in interface Serializer
Throws:
java.io.IOException

asDOMSerializer

public DOMSerializer asDOMSerializer()
                              throws java.io.IOException
Description copied from interface: Serializer
Return a DOMSerializer interface into this serializer. If the serializer does not support the DOMSerializer interface, it should return null.

Specified by:
asDOMSerializer in interface Serializer
Throws:
java.io.IOException

setOutputByteStream

public void setOutputByteStream(java.io.OutputStream output)
Description copied from interface: Serializer
Specifies an output stream to which the document should be serialized. This method should not be called while the serializer is in the process of serializing a document.

Specified by:
setOutputByteStream in interface Serializer

setOutputCharStream

public void setOutputCharStream(java.io.Writer writer)
Description copied from interface: Serializer
Specifies a writer to which the document should be serialized. This method should not be called while the serializer is in the process of serializing a document.

Specified by:
setOutputCharStream in interface Serializer

setOutputFormat

public void setOutputFormat(OutputFormat format)
Description copied from interface: Serializer
Specifies an output format for this serializer. It the serializer has already been associated with an output format, it will switch to the new format. This method should not be called while the serializer is in the process of serializing a document.

Specified by:
setOutputFormat in interface Serializer
Parameters:
format - The output format to use

reset

public boolean reset()

serialize

public void serialize(org.w3c.dom.Element elem)
               throws java.io.IOException
Serializes the DOM element using the previously specified writer and output format. Throws an exception only if an I/O exception occured while serializing.

Specified by:
serialize in interface DOMSerializer
Parameters:
elem - The element to serialize
Throws:
java.io.IOException - An I/O exception occured while serializing

serialize

public void serialize(org.w3c.dom.DocumentFragment frag)
               throws java.io.IOException
Serializes the DOM document fragmnt using the previously specified writer and output format. Throws an exception only if an I/O exception occured while serializing.

Specified by:
serialize in interface DOMSerializer
Parameters:
frag - the document fragment to serialize
Throws:
java.io.IOException - An I/O exception occured while serializing

serialize

public void serialize(org.w3c.dom.Document doc)
               throws java.io.IOException
Serializes the DOM document using the previously specified writer and output format. Throws an exception only if an I/O exception occured while serializing.

Specified by:
serialize in interface DOMSerializer
Parameters:
doc - The document to serialize
Throws:
java.io.IOException - An I/O exception occured while serializing

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[] chars,
                       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[] chars,
                                int start,
                                int length)
                         throws org.xml.sax.SAXException
Specified by:
ignorableWhitespace in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

processingInstruction

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

processingInstructionIO

public void processingInstructionIO(java.lang.String target,
                                    java.lang.String code)
                             throws java.io.IOException
Throws:
java.io.IOException

comment

public void comment(char[] chars,
                    int start,
                    int length)
             throws org.xml.sax.SAXException
Specified by:
comment in interface org.xml.sax.ext.LexicalHandler
Throws:
org.xml.sax.SAXException

comment

public void comment(java.lang.String text)
             throws java.io.IOException
Throws:
java.io.IOException

startCDATA

public void startCDATA()
Specified by:
startCDATA in interface org.xml.sax.ext.LexicalHandler

endCDATA

public void endCDATA()
Specified by:
endCDATA in interface org.xml.sax.ext.LexicalHandler

startNonEscaping

public void startNonEscaping()

endNonEscaping

public void endNonEscaping()

startPreserving

public void startPreserving()

endPreserving

public void endPreserving()

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
Called at the end of the document to wrap it up. Will flush the output stream and throw an exception if any I/O error occured while serializing.

Specified by:
endDocument in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException - An I/O exception occured during serializing

startEntity

public void startEntity(java.lang.String name)
Specified by:
startEntity in interface org.xml.sax.ext.LexicalHandler

endEntity

public void endEntity(java.lang.String name)
Specified by:
endEntity in interface org.xml.sax.ext.LexicalHandler

setDocumentLocator

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

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

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

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

startDTD

public final void startDTD(java.lang.String name,
                           java.lang.String publicId,
                           java.lang.String systemId)
                    throws org.xml.sax.SAXException
Specified by:
startDTD in interface org.xml.sax.ext.LexicalHandler
Throws:
org.xml.sax.SAXException

endDTD

public void endDTD()
Specified by:
endDTD in interface org.xml.sax.ext.LexicalHandler

elementDecl

public void elementDecl(java.lang.String name,
                        java.lang.String model)
                 throws org.xml.sax.SAXException
Specified by:
elementDecl in interface org.xml.sax.ext.DeclHandler
Throws:
org.xml.sax.SAXException

attributeDecl

public void attributeDecl(java.lang.String eName,
                          java.lang.String aName,
                          java.lang.String type,
                          java.lang.String valueDefault,
                          java.lang.String value)
                   throws org.xml.sax.SAXException
Specified by:
attributeDecl in interface org.xml.sax.ext.DeclHandler
Throws:
org.xml.sax.SAXException

internalEntityDecl

public void internalEntityDecl(java.lang.String name,
                               java.lang.String value)
                        throws org.xml.sax.SAXException
Specified by:
internalEntityDecl in interface org.xml.sax.ext.DeclHandler
Throws:
org.xml.sax.SAXException

externalEntityDecl

public void externalEntityDecl(java.lang.String name,
                               java.lang.String publicId,
                               java.lang.String systemId)
                        throws org.xml.sax.SAXException
Specified by:
externalEntityDecl in interface org.xml.sax.ext.DeclHandler
Throws:
org.xml.sax.SAXException

unparsedEntityDecl

public void unparsedEntityDecl(java.lang.String name,
                               java.lang.String publicId,
                               java.lang.String systemId,
                               java.lang.String notationName)
                        throws org.xml.sax.SAXException
Specified by:
unparsedEntityDecl in interface org.xml.sax.DTDHandler
Throws:
org.xml.sax.SAXException

notationDecl

public void notationDecl(java.lang.String name,
                         java.lang.String publicId,
                         java.lang.String systemId)
                  throws org.xml.sax.SAXException
Specified by:
notationDecl in interface org.xml.sax.DTDHandler
Throws:
org.xml.sax.SAXException

uPortal 2.4.1
API Documentation