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
FieldsModifier and TypeFieldDescriptionprotected final ContentHandlerprotected NamespaceSupportprotected final Attributesprotected booleanSubclasses should check this flag in case an abort message was sent and stop any internal iteration if false.protected TransformerBase.SchemaLocationSupport -
Constructor Summary
ConstructorsConstructorDescriptionTranslatorSupport(ContentHandler contentHandler, String prefix, String nsURI) TranslatorSupport(ContentHandler contentHandler, String prefix, String nsURI, TransformerBase.SchemaLocationSupport schemaLocation) -
Method Summary
Modifier and TypeMethodDescriptionvoidabort()Abort any translating activity.protected voidUtility method to copy namespace declarations from "sub" translators into this ns support...protected voidprotected voidprotected voidprotected voidcommit()Commit pending write operations.protected AttributesImplcreateAttributes(String[] nameValuePairs) Utility method for creating attributes from an array of name value pairs.protected voidprotected voidelement(String element, String content, Attributes atts) protected voidelementSafe(String element, String content) Will only issue the provided element if content is non emptyprotected voidGet the default URI used by this Translator for encoding.Get the default prefix used by this Translator for encoding.Obtain the namespace prefixes and URIs to be included in the output document.Gets the location of the schemas used in this translator.protected voidmark()Set a mark() to which we can later "roll back" writes.protected voidreset()Discard pending write operations after a mark() has been set.protected voidprotected voidstart(String element, Attributes atts) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Translator
encode
-
Field Details
-
contentHandler
-
NULL_ATTS
-
nsSupport
-
schemaLocation
-
running
protected volatile boolean runningSubclasses should check this flag in case an abort message was sent and stop any internal iteration if false.
-
-
Constructor Details
-
TranslatorSupport
-
TranslatorSupport
public TranslatorSupport(ContentHandler contentHandler, String prefix, String nsURI, TransformerBase.SchemaLocationSupport schemaLocation)
-
-
Method Details
-
abort
public void abort()Description copied from interface:TranslatorAbort 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:
abortin 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:
-
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:
-
addNamespaceDeclarations
Utility method to copy namespace declarations from "sub" translators into this ns support... -
createAttributes
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.
-
element
-
elementSafe
Will only issue the provided element if content is non empty -
element
-
start
-
start
-
chars
-
end
-
cdata
-
comment
-
getDefaultNamespace
Description copied from interface:TranslatorGet the default URI used by this Translator for encoding. Optional.- Specified by:
getDefaultNamespacein interfaceTranslator
-
getDefaultPrefix
Description copied from interface:TranslatorGet the default prefix used by this Translator for encoding. Optional.- Specified by:
getDefaultPrefixin interfaceTranslator
-
getNamespaceSupport
Description copied from interface:TranslatorObtain the namespace prefixes and URIs to be included in the output document.- Specified by:
getNamespaceSupportin interfaceTranslator- Returns:
- An instance of NamespaceSupport.
-
getSchemaLocationSupport
Description copied from interface:TranslatorGets the location of the schemas used in this translator. Optional.- Specified by:
getSchemaLocationSupportin interfaceTranslator
-