Package org.geotools.xml.transform
Class TransformerBase.TranslatorSupport
- Object
-
- TranslatorSupport
-
- All Implemented Interfaces:
Translator
- Direct Known Subclasses:
FeatureTransformer.FeatureTranslator
,FeatureTypeTransformer.FeatureTypeTranslator
,FilterTransformer.FilterTranslator
,GeometryTransformer.GeometryTranslator
- Enclosing class:
- TransformerBase
protected abstract static class TransformerBase.TranslatorSupport extends Object implements Translator
Support for writing Translators.
-
-
Field Summary
Fields Modifier and Type Field Description protected ContentHandler
contentHandler
protected NamespaceSupport
nsSupport
protected Attributes
NULL_ATTS
protected boolean
running
Subclasses should check this flag in case an abort message was sent and stop any internal iteration if false.protected TransformerBase.SchemaLocationSupport
schemaLocation
-
Constructor Summary
Constructors Constructor Description TranslatorSupport(ContentHandler contentHandler, String prefix, String nsURI)
TranslatorSupport(ContentHandler contentHandler, String prefix, String nsURI, TransformerBase.SchemaLocationSupport schemaLocation)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
abort()
Abort any translating activity.protected void
addNamespaceDeclarations(TransformerBase.TranslatorSupport trans)
Utility method to copy namespace declarations from "sub" translators into this ns support...protected void
cdata(String cdata)
protected void
chars(String text)
protected void
comment(String comment)
protected void
commit()
Commit pending write operations.protected AttributesImpl
createAttributes(String[] nameValuePairs)
Utility method for creating attributes from an array of name value pairs.protected void
element(String element, String content)
protected void
element(String element, String content, Attributes atts)
protected void
elementSafe(String element, String content)
Will only issue the provided element if content is non emptyprotected void
end(String element)
String
getDefaultNamespace()
Get the default URI used by this Translator for encoding.String
getDefaultPrefix()
Get the default prefix used by this Translator for encoding.NamespaceSupport
getNamespaceSupport()
Obtain the namespace prefixes and URIs to be included in the output document.TransformerBase.SchemaLocationSupport
getSchemaLocationSupport()
Gets the location of the schemas used in this translator.protected void
mark()
Set a mark() to which we can later "roll back" writes.protected void
reset()
Discard pending write operations after a mark() has been set.protected void
start(String element)
protected void
start(String element, Attributes atts)
-
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface Translator
encode
-
-
-
-
Field Detail
-
contentHandler
protected final ContentHandler contentHandler
-
NULL_ATTS
protected final Attributes NULL_ATTS
-
nsSupport
protected NamespaceSupport nsSupport
-
schemaLocation
protected TransformerBase.SchemaLocationSupport schemaLocation
-
running
protected volatile boolean running
Subclasses should check this flag in case an abort message was sent and stop any internal iteration if false.
-
-
Constructor Detail
-
TranslatorSupport
public TranslatorSupport(ContentHandler contentHandler, String prefix, String nsURI)
-
TranslatorSupport
public TranslatorSupport(ContentHandler contentHandler, String prefix, String nsURI, TransformerBase.SchemaLocationSupport schemaLocation)
-
-
Method Detail
-
abort
public void abort()
Description copied from interface:Translator
Abort any translating activity. This is needed as some translators iterate internally on a data structure. The abort method should silently fail or succeed based upon the state of a translation.- Specified by:
abort
in interfaceTranslator
-
mark
protected void mark()
Set a mark() to which we can later "roll back" writes. After a call to mark(), the Translator stores pending write operations in memory until commit() is called. The pending writes can be discarded with the reset() method.Typically, one would use marks in conjunction with an exception handler:
void encodeFoo(Foo f) { try { mark(); element(foo.riskyMethod()); element(foo.dangerousMethod()); commit(); } catch (BadThingHappened disaster) { mitigate(disaster); reset(); } }
- Throws:
IllegalStateException
- if a mark is already set
-
reset
protected void reset()
Discard pending write operations after a mark() has been set.This method is safe to call even if no mark is set - so it returns to a "known good" state as far as marks are concerned.
- See Also:
mark()
-
commit
protected void commit()
Commit pending write operations. After setting a mark, this method will commit the pending writes.- Throws:
IllegalStateException
- if no mark is set- See Also:
mark()
-
addNamespaceDeclarations
protected void addNamespaceDeclarations(TransformerBase.TranslatorSupport trans)
Utility method to copy namespace declarations from "sub" translators into this ns support...
-
createAttributes
protected AttributesImpl createAttributes(String[] nameValuePairs)
Utility method for creating attributes from an array of name value pairs.The nameValuePairs array should be of the form:
{name1,value1,name2,value2,...,nameN,valueN}
- Parameters:
nameValuePairs
- The attribute names/values.
-
elementSafe
protected void elementSafe(String element, String content)
Will only issue the provided element if content is non empty
-
element
protected void element(String element, String content, Attributes atts)
-
start
protected void start(String element)
-
start
protected void start(String element, Attributes atts)
-
chars
protected void chars(String text)
-
end
protected void end(String element)
-
cdata
protected void cdata(String cdata)
-
comment
protected void comment(String comment)
-
getDefaultNamespace
public String getDefaultNamespace()
Description copied from interface:Translator
Get the default URI used by this Translator for encoding. Optional.- Specified by:
getDefaultNamespace
in interfaceTranslator
-
getDefaultPrefix
public String getDefaultPrefix()
Description copied from interface:Translator
Get the default prefix used by this Translator for encoding. Optional.- Specified by:
getDefaultPrefix
in interfaceTranslator
-
getNamespaceSupport
public NamespaceSupport getNamespaceSupport()
Description copied from interface:Translator
Obtain the namespace prefixes and URIs to be included in the output document.- Specified by:
getNamespaceSupport
in interfaceTranslator
- Returns:
- An instance of NamespaceSupport.
-
getSchemaLocationSupport
public TransformerBase.SchemaLocationSupport getSchemaLocationSupport()
Description copied from interface:Translator
Gets the location of the schemas used in this translator. Optional.- Specified by:
getSchemaLocationSupport
in interfaceTranslator
-
-