org.apache.axis2.json
Class AbstractJSONMessageFormatter

java.lang.Object
  extended by org.apache.axis2.json.AbstractJSONMessageFormatter
All Implemented Interfaces:
MessageFormatter
Direct Known Subclasses:
JSONBadgerfishMessageFormatter, JSONMessageFormatter

public abstract class AbstractJSONMessageFormatter
extends java.lang.Object
implements MessageFormatter

Base class for JSON message formatters.


Constructor Summary
AbstractJSONMessageFormatter()
           
 
Method Summary
 java.lang.String formatSOAPAction(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format, java.lang.String soapActionString)
           
 byte[] getBytes(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format)
          Gives the JSON message as an array of bytes.
 java.lang.String getContentType(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format, java.lang.String soapActionString)
           
protected abstract  javax.xml.stream.XMLStreamWriter getJSONWriter(java.io.Writer writer)
           
protected abstract  java.lang.String getStringToWrite(org.apache.axiom.om.OMDataSource dataSource)
          If the data source is a "Mapped" formatted data source, gives the JSON string by directly taking from the data source.
 java.net.URL getTargetAddress(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format, java.net.URL targetURL)
           
 void writeTo(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format, java.io.OutputStream out, boolean preserve)
          Writes the JSON message to the output stream with the correct convention.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractJSONMessageFormatter

public AbstractJSONMessageFormatter()
Method Detail

getContentType

public java.lang.String getContentType(MessageContext msgCtxt,
                                       org.apache.axiom.om.OMOutputFormat format,
                                       java.lang.String soapActionString)
Specified by:
getContentType in interface MessageFormatter

getBytes

public byte[] getBytes(MessageContext msgCtxt,
                       org.apache.axiom.om.OMOutputFormat format)
                throws AxisFault
Gives the JSON message as an array of bytes. If the payload is an OMSourcedElement and it contains a JSONDataSource with a correctly formatted JSON String, gets it directly from the DataSource and returns as a byte array. If not, the OM tree is expanded and it is serialized into the output stream and byte array is returned.

Specified by:
getBytes in interface MessageFormatter
Parameters:
msgCtxt - Message context which contains the soap envelope to be written
format - format of the message, this is ignored
Returns:
the payload as a byte array
Throws:
AxisFault - if there is an error in writing the message using StAX writer or IF THE USER TRIES TO SEND A JSON MESSAGE WITH NAMESPACES USING THE "MAPPED" CONVENTION.

formatSOAPAction

public java.lang.String formatSOAPAction(MessageContext msgCtxt,
                                         org.apache.axiom.om.OMOutputFormat format,
                                         java.lang.String soapActionString)
Specified by:
formatSOAPAction in interface MessageFormatter

getJSONWriter

protected abstract javax.xml.stream.XMLStreamWriter getJSONWriter(java.io.Writer writer)

getStringToWrite

protected abstract java.lang.String getStringToWrite(org.apache.axiom.om.OMDataSource dataSource)
If the data source is a "Mapped" formatted data source, gives the JSON string by directly taking from the data source.

Parameters:
dataSource - data source to be checked
Returns:
the JSON string to write

writeTo

public void writeTo(MessageContext msgCtxt,
                    org.apache.axiom.om.OMOutputFormat format,
                    java.io.OutputStream out,
                    boolean preserve)
             throws AxisFault
Writes the JSON message to the output stream with the correct convention. If the payload is an OMSourcedElement and it contains a JSONDataSource with a correctly formatted JSON String, gets it directly from the DataSource and writes to the output stream. If not, the OM tree is expanded and it is serialized into the output stream. *

Specified by:
writeTo in interface MessageFormatter
Parameters:
msgCtxt - Message context which contains the soap envelope to be written
format - format of the message, this is ignored
out - output stream to be written in to
preserve - ignored
Throws:
AxisFault - if there is an error in writing the message using StAX writer or IF THE USER TRIES TO SEND A JSON MESSAGE WITH NAMESPACES USING THE "MAPPED" CONVENTION.

getTargetAddress

public java.net.URL getTargetAddress(MessageContext msgCtxt,
                                     org.apache.axiom.om.OMOutputFormat format,
                                     java.net.URL targetURL)
                              throws AxisFault
Specified by:
getTargetAddress in interface MessageFormatter
Throws:
AxisFault


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.