org.apache.camel.dataformat.xmljson
Class XmlJsonDataFormat

java.lang.Object
  extended by org.apache.camel.support.ServiceSupport
      extended by org.apache.camel.dataformat.xmljson.XmlJsonDataFormat
All Implemented Interfaces:
org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.DataFormat, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

public class XmlJsonDataFormat
extends org.apache.camel.support.ServiceSupport
implements org.apache.camel.spi.DataFormat

A data format (DataFormat) using json-lib to convert between XML and JSON directly.


Nested Class Summary
static class XmlJsonDataFormat.NamespacesPerElementMapping
          Encapsulates the information needed to bind namespace declarations to XML elements when performing JSON to XML conversions Given the following JSON: { "root:": { "element": "value", "element2": "value2" }}, it will produce the following XML when "element" is bound to prefix "ns1" and namespace URI "http://mynamespace.org": valuevalue2 For convenience, the NamespacesPerElementMapping#NamespacesPerElementMapping(String, String) constructor allows to specify multiple prefix-namespaceURI pairs in just one String line, the format being: |ns1|http://mynamespace.org|ns2|http://mynamespace2.org|
 
Field Summary
 
Fields inherited from class org.apache.camel.support.ServiceSupport
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
 
Constructor Summary
XmlJsonDataFormat()
           
 
Method Summary
protected  void doStart()
           
protected  void doStop()
           
 String getArrayName()
           
 String getElementName()
           
 String getEncoding()
           
 List<String> getExpandableProperties()
           
 Boolean getForceTopLevelObject()
           
 Boolean getNamespaceLenient()
           
 List<XmlJsonDataFormat.NamespacesPerElementMapping> getNamespaceMappings()
           
 Boolean getRemoveNamespacePrefixes()
           
 String getRootName()
           
 net.sf.json.xml.XMLSerializer getSerializer()
           
 Boolean getSkipNamespaces()
           
 Boolean getSkipWhitespace()
           
 Boolean getTrimSpaces()
           
 TypeHintsEnum getTypeHints()
           
 void marshal(org.apache.camel.Exchange exchange, Object graph, OutputStream stream)
          Marshal from XML to JSON
 void setArrayName(String arrayName)
          See XMLSerializer.setArrayName(String)
 void setElementName(String elementName)
          See XMLSerializer.setElementName(String)
 void setEncoding(String encoding)
          Sets the encoding for the call to XMLSerializer.write(JSON, String)
 void setExpandableProperties(List<String> expandableProperties)
          See XMLSerializer.setExpandableProperties(String[])
 void setForceTopLevelObject(Boolean forceTopLevelObject)
          See XMLSerializer.setForceTopLevelObject(boolean)
 void setNamespaceLenient(Boolean namespaceLenient)
          See XMLSerializer.setNamespaceLenient(boolean)
 void setNamespaceMappings(List<XmlJsonDataFormat.NamespacesPerElementMapping> namespaceMappings)
          Sets associations between elements and namespace mappings.
 void setRemoveNamespacePrefixes(Boolean removeNamespacePrefixes)
          See XMLSerializer.setRemoveNamespacePrefixFromElements(boolean)
 void setRootName(String rootName)
          See XMLSerializer.setRootName(String)
 void setSkipNamespaces(Boolean skipNamespaces)
          See XMLSerializer.setSkipNamespaces(boolean)
 void setSkipWhitespace(Boolean skipWhitespace)
          See XMLSerializer.setSkipWhitespace(boolean)
 void setTrimSpaces(Boolean trimSpaces)
          See XMLSerializer.setTrimSpaces(boolean)
 void setTypeHints(String typeHints)
          See XMLSerializer.setTypeHintsEnabled(boolean) and XMLSerializer.setTypeHintsCompatibility(boolean)
 Object unmarshal(org.apache.camel.Exchange exchange, InputStream stream)
          Convert from JSON to XML
 
Methods inherited from class org.apache.camel.support.ServiceSupport
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, resume, shutdown, start, stop, suspend
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XmlJsonDataFormat

public XmlJsonDataFormat()
Method Detail

doStart

protected void doStart()
                throws Exception
Specified by:
doStart in class org.apache.camel.support.ServiceSupport
Throws:
Exception

doStop

protected void doStop()
               throws Exception
Specified by:
doStop in class org.apache.camel.support.ServiceSupport
Throws:
Exception

marshal

public void marshal(org.apache.camel.Exchange exchange,
                    Object graph,
                    OutputStream stream)
             throws Exception
Marshal from XML to JSON

Specified by:
marshal in interface org.apache.camel.spi.DataFormat
Throws:
Exception

unmarshal

public Object unmarshal(org.apache.camel.Exchange exchange,
                        InputStream stream)
                 throws Exception
Convert from JSON to XML

Specified by:
unmarshal in interface org.apache.camel.spi.DataFormat
Throws:
Exception

getSerializer

public net.sf.json.xml.XMLSerializer getSerializer()

getEncoding

public String getEncoding()

setEncoding

public void setEncoding(String encoding)
Sets the encoding for the call to XMLSerializer.write(JSON, String)


getForceTopLevelObject

public Boolean getForceTopLevelObject()

setForceTopLevelObject

public void setForceTopLevelObject(Boolean forceTopLevelObject)
See XMLSerializer.setForceTopLevelObject(boolean)


getNamespaceLenient

public Boolean getNamespaceLenient()

setNamespaceLenient

public void setNamespaceLenient(Boolean namespaceLenient)
See XMLSerializer.setNamespaceLenient(boolean)


getNamespaceMappings

public List<XmlJsonDataFormat.NamespacesPerElementMapping> getNamespaceMappings()

setNamespaceMappings

public void setNamespaceMappings(List<XmlJsonDataFormat.NamespacesPerElementMapping> namespaceMappings)
Sets associations between elements and namespace mappings. Will only be used when converting from JSON to XML. For every association, the whenever a JSON element is found that matches XmlJsonDataFormat.NamespacesPerElementMapping.element, the namespaces declarations specified by XmlJsonDataFormat.NamespacesPerElementMapping.namespaces will be output.

See Also:
XMLSerializer#addNamespace(String, String, String)}

getRootName

public String getRootName()

setRootName

public void setRootName(String rootName)
See XMLSerializer.setRootName(String)


getSkipWhitespace

public Boolean getSkipWhitespace()

setSkipWhitespace

public void setSkipWhitespace(Boolean skipWhitespace)
See XMLSerializer.setSkipWhitespace(boolean)


getTrimSpaces

public Boolean getTrimSpaces()

setTrimSpaces

public void setTrimSpaces(Boolean trimSpaces)
See XMLSerializer.setTrimSpaces(boolean)


getTypeHints

public TypeHintsEnum getTypeHints()

setTypeHints

public void setTypeHints(String typeHints)
See XMLSerializer.setTypeHintsEnabled(boolean) and XMLSerializer.setTypeHintsCompatibility(boolean)

Parameters:
typeHints - a key in the TypeHintsEnum enumeration

getSkipNamespaces

public Boolean getSkipNamespaces()

setSkipNamespaces

public void setSkipNamespaces(Boolean skipNamespaces)
See XMLSerializer.setSkipNamespaces(boolean)


setElementName

public void setElementName(String elementName)
See XMLSerializer.setElementName(String)


getElementName

public String getElementName()

setArrayName

public void setArrayName(String arrayName)
See XMLSerializer.setArrayName(String)


getArrayName

public String getArrayName()

setExpandableProperties

public void setExpandableProperties(List<String> expandableProperties)
See XMLSerializer.setExpandableProperties(String[])


getExpandableProperties

public List<String> getExpandableProperties()

setRemoveNamespacePrefixes

public void setRemoveNamespacePrefixes(Boolean removeNamespacePrefixes)
See XMLSerializer.setRemoveNamespacePrefixFromElements(boolean)


getRemoveNamespacePrefixes

public Boolean getRemoveNamespacePrefixes()


Apache Camel