org.geotools.xml.transform
Class TransformerBase.TranslatorSupport

Object
  extended by TransformerBase.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
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
TransformerBase.TranslatorSupport(ContentHandler contentHandler, String prefix, String nsURI)
           
TransformerBase.TranslatorSupport(ContentHandler contentHandler, String prefix, String nsURI, TransformerBase.SchemaLocationSupport schemaLocation)
           
 
Method Summary
 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 empty
protected  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

TransformerBase.TranslatorSupport

public TransformerBase.TranslatorSupport(ContentHandler contentHandler,
                                         String prefix,
                                         String nsURI)

TransformerBase.TranslatorSupport

public TransformerBase.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 interface Translator

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.

element

protected void element(String element,
                       String content)

elementSafe

protected void elementSafe(String element,
                           String content)
Will only issue the provided element if content is non empty

Parameters:
element -
content -

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 interface Translator

getDefaultPrefix

public String getDefaultPrefix()
Description copied from interface: Translator
Get the default prefix used by this Translator for encoding. Optional.

Specified by:
getDefaultPrefix in interface Translator

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 interface Translator
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 interface Translator


Copyright © 1996-2014 Geotools. All Rights Reserved.