Package org.geotools.xml.transform
Class TransformerBase
Object
TransformerBase
- Direct Known Subclasses:
FeatureTransformer
,FeatureTypeTransformer
,FilterTransformer
,GeometryTransformer
,SLDTransformer
TransformerBase provides support for writing Object->XML encoders. The basic pattern for usage 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
Nested ClassesModifier and TypeClassDescriptionstatic class
Adds support for schemaLocations.class
A wrapper for a Transformation Task.protected static class
Support for writing Translators.protected static class
Support for the setup of an XMLReader for use in a transformation. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCreate a Transformer which is initialized with the settings of this TransformerBase.createTransformTask
(Object object, StreamResult result) Create a Transformation task.abstract Translator
createTranslator
(ContentHandler handler) Create a Translator to issue SAXEvents to a ContentHandler.createXMLReader
(Object object) Create an XMLReader to use in the transformation.Gets the charset to declare in the header of the response.int
Get the number of spaces to indent the output xml.boolean
Should this transformer declare namespace prefixes in the first element it outputs?boolean
Will this transformation omit the standard XML declaration.void
setEncoding
(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.Perform the XML encoding of the given object into an internal buffer and return the resulting String.void
transform
(Object object, OutputStream out) Perform the XML encoding on the given object to the given OutputStream.void
Perform the XML encoding on the given object to the given Writer.void
transform
(Object object, StreamResult result) Perform the XML encoding on the given object to the given OutputStream.
-
Field Details
-
XMLNS_NAMESPACE
- See Also:
-
-
Constructor Details
-
TransformerBase
public TransformerBase()
-
-
Method Details
-
createTranslator
Create a Translator to issue SAXEvents to a ContentHandler. -
createTransformer
Create a Transformer which is initialized with the settings of this TransformerBase.- Throws:
TransformerException
-
transform
Perform the XML encoding on the given object to the given OutputStream. Calls transform(Object,StreamResult);- Throws:
TransformerException
-
transform
Perform the XML encoding on the given object to the given Writer. Calls transform(Object,StreamResult);- Throws:
TransformerException
-
transform
Perform the XML encoding on the given object to the given OutputStream. Calls createTransformer(),createXMLReader() and Transformer.transform().- Throws:
TransformerException
-
createTransformTask
public TransformerBase.Task createTransformTask(Object object, StreamResult result) throws 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:
TransformerException
-
transform
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:
TransformerException
-
createXMLReader
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
Gets the charset to declare in the header of the response.- Returns:
- the charset to encode with.
-
setEncoding
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.
-