ix.util.xml
Class XMLTranslator

java.lang.Object
  |
  +--ix.util.xml.XMLTranslator
Direct Known Subclasses:
DashSyntaxXMLTranslator, JavaSyntaxXMLTranslator

public class XMLTranslator
extends java.lang.Object

A class for translating between objects and XML. Note that a single XMLTranslator maps in both directions to make it easier to create mappings that are consistent.


Inner Class Summary
protected  class XMLTranslator.WalkerForXML
          A FieldWalker for XML generation.
 
Field Summary
protected  ClassFinder classFinder
           
protected  java.lang.Class defaultListClass
           
protected  java.lang.Class defaultMapClass
           
protected  java.lang.Class defaultSetClass
           
protected  java.lang.String implAttribute
           
protected  org.jdom.Element lastConvertedElement
           
protected  boolean omitImplAttributes
           
protected  org.jdom.output.XMLOutputter outputter
           
protected static XMLTranslator standardTranslator
           
protected  java.util.Map walkerCache
           
 
Constructor Summary
XMLTranslator()
           
 
Method Summary
(package private)  void ()
          Add initial imports.
protected  void addImport(java.lang.String name)
           
 java.lang.Class classForExternalName(java.lang.String externalName)
           
 java.util.Collection collectionFromElement(java.lang.Class c, java.lang.Class implDefault, org.jdom.Element elt)
           
 org.jdom.Element collectionToElement(java.lang.Class iface, java.util.Collection obj)
           
static void do_main(XMLTranslator xmlt)
           
protected  FieldWalker ensureFieldWalker(java.lang.Class c)
           
 java.lang.String externalFieldName(java.lang.String internalName)
           
 java.lang.String externalName(java.lang.String internalName)
           
 java.lang.String externalNameForClass(java.lang.Class c)
           
 ClassFinder getClassFinder()
           
 java.lang.Class getImplClass(org.jdom.Element elt, java.lang.Class implDefault)
           
 org.jdom.Element getLastConvertedElement()
          Returns the JDOM Element most recently given to the objectFromElement method.
 org.jdom.output.XMLOutputter getOutputter()
           
 java.lang.String internalFieldName(java.lang.String externalName)
           
 java.lang.String internalName(java.lang.String externalName)
           
static boolean isAttributeClass(java.lang.Class c)
           
 java.util.List listFromElement(java.lang.Class c, org.jdom.Element elt)
           
 org.jdom.Element listToElement(java.lang.Object obj)
           
static void main(java.lang.String[] argv)
          Simple main program used for testing.
 java.lang.Object makeInstance(java.lang.Class c)
          Makes an instance of a class using the 0-argument constructor.
 LList makeLListFromElement(org.jdom.Element elt)
           
 java.util.Map mapFromElement(java.lang.Class c, org.jdom.Element elt)
           
 org.jdom.Element mapToElement(java.lang.Object obj)
           
 java.lang.Object objectFromDocument(org.jdom.Document doc)
          Converts a JDOM Document to an object.
protected  java.lang.Object objectFromElement(java.lang.Class c, org.jdom.Element elt)
           
 java.lang.Object objectFromElement(org.jdom.Element elt)
          Converts a JDOM Element to an object.
 java.lang.Object objectFromXML(java.lang.String text)
          Converts a string of XML to an object.
 org.jdom.Document objectToDocument(java.lang.Object obj)
          Converts an object to a JDOM Document.
 org.jdom.Element objectToElement(java.lang.Object obj)
          Converts an object to a JDOM Element.
 java.lang.String objectToXMLString(java.lang.Object obj)
          Converts an object to a string of XML.
 java.lang.Object primitiveObjectFromElement(java.lang.Class c, org.jdom.Element elt)
           
 java.lang.Object primitiveObjectFromString(java.lang.Class c, java.lang.String s)
           
 org.jdom.Element primitiveObjectToElement(java.lang.Object obj)
           
protected  void requireEltSize(int size, org.jdom.Element elt)
           
protected  void requireEltType(java.lang.String name, org.jdom.Element elt)
           
 java.util.Set setFromElement(java.lang.Class c, org.jdom.Element elt)
           
protected  void setOmitImplAttributes(boolean v)
          Controlls whether or not implClass attributes are added to List, Set, and Map elements when converting to XML.
 org.jdom.Element setToElement(java.lang.Object obj)
           
protected static java.lang.String standardXML(java.lang.Object obj)
           
 java.lang.String stringFromElement(java.lang.Class c, org.jdom.Element elt)
           
 org.jdom.Element stringToElement(java.lang.Object obj)
           
 java.lang.Object structFromElement(java.lang.Class c, org.jdom.Element elt)
           
 org.jdom.Element structToElement(java.lang.Object obj)
           
protected static void test(XMLTranslator xmlt, java.lang.Object obj)
           
protected static void test(XMLTranslator xmlt, java.lang.Object obj, Function2 look)
           
static java.lang.Class wrapperClass(java.lang.Class pc)
          Returns the wrapper class for a primitive class, such as Long.class for long.class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classFinder

protected ClassFinder classFinder

outputter

protected org.jdom.output.XMLOutputter outputter

walkerCache

protected java.util.Map walkerCache

implAttribute

protected java.lang.String implAttribute

omitImplAttributes

protected boolean omitImplAttributes

lastConvertedElement

protected org.jdom.Element lastConvertedElement

defaultListClass

protected java.lang.Class defaultListClass

defaultSetClass

protected java.lang.Class defaultSetClass

defaultMapClass

protected java.lang.Class defaultMapClass

standardTranslator

protected static XMLTranslator standardTranslator
Constructor Detail

XMLTranslator

public XMLTranslator()
Method Detail

void ()
Add initial imports.
Overrides:
in class java.lang.Object

getClassFinder

public ClassFinder getClassFinder()

getOutputter

public org.jdom.output.XMLOutputter getOutputter()

setOmitImplAttributes

protected void setOmitImplAttributes(boolean v)
Controlls whether or not implClass attributes are added to List, Set, and Map elements when converting to XML. Note that if it's set to true, the XML will not contain enough information to determine the original implementation classes and the translator will have to do its best to make reasonable choices based on field classes and the defaults.

addImport

protected void addImport(java.lang.String name)

classForExternalName

public java.lang.Class classForExternalName(java.lang.String externalName)

externalNameForClass

public java.lang.String externalNameForClass(java.lang.Class c)

internalFieldName

public java.lang.String internalFieldName(java.lang.String externalName)

externalFieldName

public java.lang.String externalFieldName(java.lang.String internalName)

internalName

public java.lang.String internalName(java.lang.String externalName)

externalName

public java.lang.String externalName(java.lang.String internalName)

objectToXMLString

public java.lang.String objectToXMLString(java.lang.Object obj)
Converts an object to a string of XML.

objectToDocument

public org.jdom.Document objectToDocument(java.lang.Object obj)
Converts an object to a JDOM Document.

objectToElement

public org.jdom.Element objectToElement(java.lang.Object obj)
Converts an object to a JDOM Element. This is the central recursion point for the conversion process; it determines which of the typeToElement(Object) methods to call.

primitiveObjectToElement

public org.jdom.Element primitiveObjectToElement(java.lang.Object obj)

stringToElement

public org.jdom.Element stringToElement(java.lang.Object obj)

listToElement

public org.jdom.Element listToElement(java.lang.Object obj)

setToElement

public org.jdom.Element setToElement(java.lang.Object obj)

collectionToElement

public org.jdom.Element collectionToElement(java.lang.Class iface,
                                            java.util.Collection obj)

mapToElement

public org.jdom.Element mapToElement(java.lang.Object obj)

structToElement

public org.jdom.Element structToElement(java.lang.Object obj)

ensureFieldWalker

protected FieldWalker ensureFieldWalker(java.lang.Class c)

isAttributeClass

public static boolean isAttributeClass(java.lang.Class c)

objectFromXML

public java.lang.Object objectFromXML(java.lang.String text)
Converts a string of XML to an object.

objectFromDocument

public java.lang.Object objectFromDocument(org.jdom.Document doc)
Converts a JDOM Document to an object. This method, or one that calls it, is what should normally be called from outside the translator - rather than calling objectFromElement(elt) directly.

getLastConvertedElement

public org.jdom.Element getLastConvertedElement()
Returns the JDOM Element most recently given to the objectFromElement method. This may be useful when handling or reporting an exception.

objectFromElement

public java.lang.Object objectFromElement(org.jdom.Element elt)
Converts a JDOM Element to an object. This is the central recursion point of the translation process; it determines which of the typeFromElement methods to call.

objectFromElement

protected java.lang.Object objectFromElement(java.lang.Class c,
                                             org.jdom.Element elt)

primitiveObjectFromElement

public java.lang.Object primitiveObjectFromElement(java.lang.Class c,
                                                   org.jdom.Element elt)

primitiveObjectFromString

public java.lang.Object primitiveObjectFromString(java.lang.Class c,
                                                  java.lang.String s)

stringFromElement

public java.lang.String stringFromElement(java.lang.Class c,
                                          org.jdom.Element elt)

listFromElement

public java.util.List listFromElement(java.lang.Class c,
                                      org.jdom.Element elt)

setFromElement

public java.util.Set setFromElement(java.lang.Class c,
                                    org.jdom.Element elt)

collectionFromElement

public java.util.Collection collectionFromElement(java.lang.Class c,
                                                  java.lang.Class implDefault,
                                                  org.jdom.Element elt)

makeLListFromElement

public LList makeLListFromElement(org.jdom.Element elt)

getImplClass

public java.lang.Class getImplClass(org.jdom.Element elt,
                                    java.lang.Class implDefault)

mapFromElement

public java.util.Map mapFromElement(java.lang.Class c,
                                    org.jdom.Element elt)

requireEltType

protected void requireEltType(java.lang.String name,
                              org.jdom.Element elt)

requireEltSize

protected void requireEltSize(int size,
                              org.jdom.Element elt)

structFromElement

public java.lang.Object structFromElement(java.lang.Class c,
                                          org.jdom.Element elt)

wrapperClass

public static final java.lang.Class wrapperClass(java.lang.Class pc)
Returns the wrapper class for a primitive class, such as Long.class for long.class.

makeInstance

public java.lang.Object makeInstance(java.lang.Class c)
Makes an instance of a class using the 0-argument constructor.
Throws:
XMLException - if the attempt fails.

standardXML

protected static java.lang.String standardXML(java.lang.Object obj)

test

protected static void test(XMLTranslator xmlt,
                           java.lang.Object obj)

test

protected static void test(XMLTranslator xmlt,
                           java.lang.Object obj,
                           Function2 look)

main

public static void main(java.lang.String[] argv)
Simple main program used for testing.

do_main

public static void do_main(XMLTranslator xmlt)