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 Object
implements MessageFormatter

Base class for JSON message formatters.


Constructor Summary
AbstractJSONMessageFormatter()
           
 
Method Summary
 String formatSOAPAction(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format, String soapActionString)
           
 byte[] getBytes(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format)
          Gives the JSON message as an array of bytes.
 String getContentType(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format, String soapActionString)
          Different message formats can set their own content types Eg: JSONFormatter can set the content type as application/json
protected abstract  XMLStreamWriter getJSONWriter(Writer writer)
           
protected abstract  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.
 URL getTargetAddress(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format, URL targetURL)
          Some message formats may want to alter the target url.
 void writeTo(MessageContext msgCtxt, org.apache.axiom.om.OMOutputFormat format, 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 String getContentType(MessageContext msgCtxt,
                             org.apache.axiom.om.OMOutputFormat format,
                             String soapActionString)
Description copied from interface: MessageFormatter
Different message formats can set their own content types Eg: JSONFormatter can set the content type as application/json

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 String formatSOAPAction(MessageContext msgCtxt,
                               org.apache.axiom.om.OMOutputFormat format,
                               String soapActionString)
Specified by:
formatSOAPAction in interface MessageFormatter
Returns:
this only if you want set a transport header for SOAP Action

getJSONWriter

protected abstract XMLStreamWriter getJSONWriter(Writer writer)

getStringToWrite

protected abstract 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,
                    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 URL getTargetAddress(MessageContext msgCtxt,
                            org.apache.axiom.om.OMOutputFormat format,
                            URL targetURL)
                     throws AxisFault
Description copied from interface: MessageFormatter
Some message formats may want to alter the target url.

Specified by:
getTargetAddress in interface MessageFormatter
Returns:
the target URL
Throws:
AxisFault


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