org.geotools.xml.transform
Class TransformerBase

java.lang.Object
  extended byorg.geotools.xml.transform.TransformerBase
Direct Known Subclasses:
FeatureTransformer, FeatureTypeTransformer, FilterTransformer, GeometryTransformer, SLDTransformer

public abstract class TransformerBase
extends java.lang.Object

TransformerBase provides support for writing Object->XML encoders. The basic pattern for useage is to extend TransformerBase and implement the createTranslator(ContentHandler) method. This is easiest done by extending the inner class TranslatorSupport. A Translator uses a ContentHandler to issue SAX events to a javax.xml.transform.Transformer. If possible, make the translator public so it can be used by others as well.

Author:
Ian Schneider

Nested Class Summary
static class TransformerBase.SchemaLocationSupport
          Adds support for schemaLocations.
 class TransformerBase.Task
          A wrapper for a Transformation Task.
protected static class TransformerBase.TranslatorSupport
          Support for writing Translators.
protected static class TransformerBase.XMLReaderSupport
          Support for the setup of an XMLReader for use in a transformation.
 
Constructor Summary
TransformerBase()
           
 
Method Summary
 javax.xml.transform.Transformer createTransformer()
          Create a Transformer which is initialized with the settings of this TransformerBase.
 TransformerBase.Task createTransformTask(java.lang.Object object, javax.xml.transform.stream.StreamResult result)
          Create a Transformation task.
abstract  Translator createTranslator(org.xml.sax.ContentHandler handler)
          Create a Translator to issue SAXEvents to a ContentHandler.
 TransformerBase.XMLReaderSupport createXMLReader(java.lang.Object object)
          Create an XMLReader to use in the transformation.
 java.nio.charset.Charset getEncoding()
          Gets the charset to declare in the header of the response.
 int getIndentation()
          Get the number of spaces to indent the output xml.
 boolean isNamespaceDeclartionEnabled()
          Should this transformer declare namespace prefixes in the first element it outputs?
 boolean isOmitXMLDeclaration()
          Will this transformation omit the standard XML declaration.
 void setEncoding(java.nio.charset.Charset charset)
          Sets the charset to declare in the xml header returned.
 void setIndentation(int amt)
          Set the number of spaces to indent the output xml.
 void setNamespaceDeclarationEnabled(boolean enabled)
          Enable declaration of namespace prefixes in the first element.
 void setOmitXMLDeclaration(boolean xmlDecl)
          Set this transformer to omit/include the XML declaration.
 java.lang.String transform(java.lang.Object object)
          Perform the XML encoding of the given object into an internal buffer and return the resulting String.
 void transform(java.lang.Object object, java.io.OutputStream out)
          Perform the XML encoding on the given object to the given OutputStream.
 void transform(java.lang.Object object, javax.xml.transform.stream.StreamResult result)
          Perform the XML encoding on the given object to the given OutputStream.
 void transform(java.lang.Object object, java.io.Writer out)
          Perform the XML encoding on the given object to the given Writer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransformerBase

public TransformerBase()
Method Detail

createTranslator

public abstract Translator createTranslator(org.xml.sax.ContentHandler handler)
Create a Translator to issue SAXEvents to a ContentHandler.


createTransformer

public javax.xml.transform.Transformer createTransformer()
                                                  throws javax.xml.transform.TransformerException
Create a Transformer which is initialized with the settings of this TransformerBase.

Throws:
javax.xml.transform.TransformerException

transform

public void transform(java.lang.Object object,
                      java.io.OutputStream out)
               throws javax.xml.transform.TransformerException
Perform the XML encoding on the given object to the given OutputStream. Calls transform(Object,StreamResult);

Throws:
javax.xml.transform.TransformerException

transform

public void transform(java.lang.Object object,
                      java.io.Writer out)
               throws javax.xml.transform.TransformerException
Perform the XML encoding on the given object to the given Writer. Calls transform(Object,StreamResult);

Throws:
javax.xml.transform.TransformerException

transform

public void transform(java.lang.Object object,
                      javax.xml.transform.stream.StreamResult result)
               throws javax.xml.transform.TransformerException
Perform the XML encoding on the given object to the given OutputStream. Calls createTransformer(),createXMLReader() and Transformer.transform().

Throws:
javax.xml.transform.TransformerException

createTransformTask

public TransformerBase.Task createTransformTask(java.lang.Object object,
                                                javax.xml.transform.stream.StreamResult result)
                                         throws javax.xml.transform.TransformerException
Create a Transformation task. This is a Runnable task which supports aborting any processing. It will not start until the run method is called.

Throws:
javax.xml.transform.TransformerException

transform

public java.lang.String transform(java.lang.Object object)
                           throws javax.xml.transform.TransformerException
Perform the XML encoding of the given object into an internal buffer and return the resulting String. Calls transform(Object,Writer). It should be noted the most efficient mechanism of encoding is using the OutputStream or Writer methods

Throws:
javax.xml.transform.TransformerException

createXMLReader

public TransformerBase.XMLReaderSupport createXMLReader(java.lang.Object object)
Create an XMLReader to use in the transformation.


getIndentation

public int getIndentation()
Get the number of spaces to indent the output xml. Defaults to -1.

Returns:
The number of spaces to indent, or -1, to disable.

setIndentation

public void setIndentation(int amt)
Set the number of spaces to indent the output xml. Default to -1.

Parameters:
amt - The number of spaces to indent if > 0, otherwise disable.

getEncoding

public java.nio.charset.Charset getEncoding()
Gets the charset to declare in the header of the response.

Returns:
the charset to encode with.

setEncoding

public void setEncoding(java.nio.charset.Charset charset)
Sets the charset to declare in the xml header returned.

Parameters:
charset - A charset object of the desired encoding

isOmitXMLDeclaration

public boolean isOmitXMLDeclaration()
Will this transformation omit the standard XML declaration. Defaults to false

Returns:
true if the XML declaration will be omitted, false otherwise.

setOmitXMLDeclaration

public void setOmitXMLDeclaration(boolean xmlDecl)
Set this transformer to omit/include the XML declaration. Defaults to false

Parameters:
xmlDecl - Omit/include the XML declaration.

isNamespaceDeclartionEnabled

public boolean isNamespaceDeclartionEnabled()
Should this transformer declare namespace prefixes in the first element it outputs? Defaults to true.

Returns:
true if namespaces will be declared, false otherwise

setNamespaceDeclarationEnabled

public void setNamespaceDeclarationEnabled(boolean enabled)
Enable declaration of namespace prefixes in the first element. Defaults to true;

Parameters:
enabled - Enable namespace declaration.


Copyright © GeoTools. All Rights Reserved.