org.apache.axis2.jaxws.message.impl
Class MessageImpl

java.lang.Object
  extended by org.apache.axis2.jaxws.message.impl.MessageImpl
All Implemented Interfaces:
Message, XMLPart

public class MessageImpl
extends java.lang.Object
implements Message

MessageImpl A Message is an XML part + Attachments. Most of the implementation delegates to the XMLPart implementation. NOTE: For XML/HTTP (REST), a SOAP 1.1. Envelope is built and the rest payload is placed in the body. This purposely mimics the Axis2 implementation.


Method Summary
 void addDataHandler(javax.activation.DataHandler dh, java.lang.String id)
          Add Attachment
 void appendHeaderBlock(java.lang.String namespace, java.lang.String localPart, Block block)
          appendHeaderBlock Append the block to the list of header blocks.
 void close()
          Used primarily to ensure the parser is forwarded to the end so it can be closed.
 org.apache.axiom.om.OMElement getAsOMElement()
          getAsOMElement Get the xml part as a read/write OM...note this returns an OM SOAPEnvelope for all protocols...even REST
 SOAPEnvelope getAsSOAPEnvelope()
          getAsEnvelope Get the xml part as a read/write SOAPEnvelope
 SOAPMessage getAsSOAPMessage()
          getAsSOAPMessage Get the xml part as a read/write SOAPEnvelope
 java.lang.String getAttachmentID(int index)
          Get the indicated (non-soap part) attachment id
 java.lang.String getAttachmentID(java.lang.String partName)
          Get the indicated (non-soap part) attachment id
 java.util.List<java.lang.String> getAttachmentIDs()
          Get the list of attachment content ids for the message
 Block getBodyBlock(int index, java.lang.Object context, BlockFactory blockFactory)
          getBodyBlock Get the body block at the specificed index.
 Block getBodyBlock(java.lang.Object context, BlockFactory blockFactory)
          getBodyBlock Get the single Body Block.
 javax.activation.DataHandler getDataHandler(java.lang.String cid)
          Get the attachment identified by the contentID
 Block getHeaderBlock(java.lang.String namespace, java.lang.String localPart, java.lang.Object context, BlockFactory blockFactory)
          getHeaderBlock Get the firstheader block with the specified name.
 java.util.List<Block> getHeaderBlocks(java.lang.String namespace, java.lang.String localPart, java.lang.Object context, BlockFactory blockFactory, org.apache.axiom.soap.RolePlayer rolePlayer)
          getHeaderBlock Get the header blocks with the specified name The BlockFactory and object context are passed in to help create the proper kind of block.
 java.util.Set<QName> getHeaderQNames()
           
 int getIndirection()
          Get indirection.
 MessageContext getMessageContext()
           
 java.util.Map getMimeHeaders()
           
 int getNumBodyBlocks()
          getNumBodyBlocks Calling this method will cache the OM.
 int getNumHeaderBlocks()
          getNumHeaderBlocks
 QName getOperationElement()
           
 Message getParent()
          getParent Get the Message object that this XMLPart is attached to, if it is attached to one at all.
 Protocol getProtocol()
          Get the protocol for this Message (soap11, soap12, etc.)
 SOAPBinding.Style getStyle()
           
 java.lang.Object getValue(java.lang.Object context, BlockFactory blockFactory)
           
 XMLFault getXMLFault()
          If the XMLPart represents a fault, an XMLFault is returned which describes the fault in a protocol agnostic manner
 java.lang.String getXMLPartContentType()
          The representation of the XMLPart may be in a number of different forms.
 javax.xml.stream.XMLStreamReader getXMLStreamReader(boolean consume)
          Get the XMLStreamReader represented by this Message for the xml part
 boolean isConsumed()
          isConsumed Return true if the part is consumed.
 boolean isDoingSWA()
           
 boolean isFault()
          Determines whether the XMLPart represents a Fault
 boolean isMTOMEnabled()
          A message is MTOM enabled if the associated dispatch/client/impl/provider has a binding type that enables MTOM.
 boolean isPostPivot()
           
 void outputTo(javax.xml.stream.XMLStreamWriter writer, boolean consume)
          Write out the Message
 void removeBodyBlock(int index)
          removeBodyBlock Removes the indicated BodyBlock
 javax.activation.DataHandler removeDataHandler(java.lang.String cid)
          Get the attachment and remove it from the Message
 void removeHeaderBlock(java.lang.String namespace, java.lang.String localPart)
          removeHeaderBlock Removes all header blocks with this namespace/localpart
 void setBodyBlock(Block block)
          setBodyBlock Set this as block as the single block for the message.
 void setBodyBlock(int index, Block block)
          setBodyBlock Set the block at the specified index Once set, the Message owns the block.
 void setDoingSWA(boolean value)
          Indicate that an SWA DataHandler was added to the message.
 void setHeaderBlock(java.lang.String namespace, java.lang.String localPart, Block block)
          setHeaderBlock replaces the first existing header block with this new block.
 void setIndirection(int indirection)
          Set indirection.
 void setMessageContext(MessageContext messageContext)
          JAX-WS Message Context that owns the Message
 void setMimeHeaders(java.util.Map map)
          Set the transport headers
 void setMTOMEnabled(boolean b)
          A message is MTOM enabled if the associated dispatch/client/impl/provider has a binding type that enables MTOM.
 void setOperationElement(QName operationQName)
          Set the operation element qname.
 void setParent(Message msg)
          setParent Set the Message object that will hold this XMLPart
 void setPostPivot()
          Indicate that this message is passed the pivot point.
 void setStyle(SOAPBinding.Style style)
          Set the Style.
 void setXMLFault(XMLFault xmlFault)
          Change the XMLPart so that it represents the fault described by XMLFault
 java.lang.String traceString(java.lang.String indent)
          Get a traceString...the trace string dumps the contents of the Block without forcing an underlying ill-performant transformation of the message.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getAsSOAPMessage

public SOAPMessage getAsSOAPMessage()
                             throws WebServiceException
Description copied from interface: Message
getAsSOAPMessage Get the xml part as a read/write SOAPEnvelope

Specified by:
getAsSOAPMessage in interface Message
Returns:
SOAPEnvelope
Throws:
WebServiceException

getAttachmentID

public java.lang.String getAttachmentID(int index)
Get the indicated (non-soap part) attachment id

Specified by:
getAttachmentID in interface Message
Parameters:
index -
Returns:
CID or null if not present

getAttachmentID

public java.lang.String getAttachmentID(java.lang.String partName)
Description copied from interface: Message
Get the indicated (non-soap part) attachment id

Specified by:
getAttachmentID in interface Message
Parameters:
partName - (WS-I indicates that SWA attachments have a partName prefix)
Returns:
CID or null if not present

getValue

public java.lang.Object getValue(java.lang.Object context,
                                 BlockFactory blockFactory)
                          throws WebServiceException
Specified by:
getValue in interface Message
Throws:
WebServiceException

getAttachmentIDs

public java.util.List<java.lang.String> getAttachmentIDs()
Description copied from interface: Message
Get the list of attachment content ids for the message

Specified by:
getAttachmentIDs in interface Message
Returns:
List

getDataHandler

public javax.activation.DataHandler getDataHandler(java.lang.String cid)
Description copied from interface: Message
Get the attachment identified by the contentID

Specified by:
getDataHandler in interface Message
Returns:

removeDataHandler

public javax.activation.DataHandler removeDataHandler(java.lang.String cid)
Description copied from interface: Message
Get the attachment and remove it from the Message

Specified by:
removeDataHandler in interface Message

getProtocol

public Protocol getProtocol()
Description copied from interface: Message
Get the protocol for this Message (soap11, soap12, etc.)

Specified by:
getProtocol in interface Message
Specified by:
getProtocol in interface XMLPart
Returns:
Protocl

getAsOMElement

public org.apache.axiom.om.OMElement getAsOMElement()
                                             throws WebServiceException
Description copied from interface: XMLPart
getAsOMElement Get the xml part as a read/write OM...note this returns an OM SOAPEnvelope for all protocols...even REST

Specified by:
getAsOMElement in interface XMLPart
Returns:
OMElement
Throws:
WebServiceException

getAsSOAPEnvelope

public SOAPEnvelope getAsSOAPEnvelope()
                               throws WebServiceException
Description copied from interface: XMLPart
getAsEnvelope Get the xml part as a read/write SOAPEnvelope

Specified by:
getAsSOAPEnvelope in interface XMLPart
Returns:
SOAPEnvelope
Throws:
WebServiceException

getBodyBlock

public Block getBodyBlock(int index,
                          java.lang.Object context,
                          BlockFactory blockFactory)
                   throws WebServiceException
Description copied from interface: XMLPart
getBodyBlock Get the body block at the specificed index. The BlockFactory and object context are passed in to help create the proper kind of block. Calling this method will cache the OM. Avoid it in performant situations.

Specified by:
getBodyBlock in interface XMLPart
Returns:
Block or null
Throws:
WebServiceException
See Also:
getBodyBlock

getHeaderBlock

public Block getHeaderBlock(java.lang.String namespace,
                            java.lang.String localPart,
                            java.lang.Object context,
                            BlockFactory blockFactory)
                     throws WebServiceException
Description copied from interface: XMLPart
getHeaderBlock Get the firstheader block with the specified name. The BlockFactory and object context are passed in to help create the proper kind of block.

Specified by:
getHeaderBlock in interface XMLPart
Returns:
Block
Throws:
WebServiceException

getHeaderBlocks

public java.util.List<Block> getHeaderBlocks(java.lang.String namespace,
                                             java.lang.String localPart,
                                             java.lang.Object context,
                                             BlockFactory blockFactory,
                                             org.apache.axiom.soap.RolePlayer rolePlayer)
                                      throws WebServiceException
Description copied from interface: XMLPart
getHeaderBlock Get the header blocks with the specified name The BlockFactory and object context are passed in to help create the proper kind of block.

Specified by:
getHeaderBlocks in interface XMLPart
Parameters:
namespace - uri of header
localPart - local name of header
context - context for blockFactory
blockFactory - kind of factory (i.e. JAXB)
Returns:
List
Throws:
WebServiceException

getNumBodyBlocks

public int getNumBodyBlocks()
                     throws WebServiceException
Description copied from interface: XMLPart
getNumBodyBlocks Calling this method will cache the OM. Avoid it in performant situations.

Specified by:
getNumBodyBlocks in interface XMLPart
Returns:
number of body blocks
Throws:
WebServiceException

getNumHeaderBlocks

public int getNumHeaderBlocks()
                       throws WebServiceException
Description copied from interface: XMLPart
getNumHeaderBlocks

Specified by:
getNumHeaderBlocks in interface XMLPart
Returns:
number of header blocks
Throws:
WebServiceException

getXMLStreamReader

public javax.xml.stream.XMLStreamReader getXMLStreamReader(boolean consume)
                                                    throws WebServiceException
Description copied from interface: XMLPart
Get the XMLStreamReader represented by this Message for the xml part

Specified by:
getXMLStreamReader in interface XMLPart
Parameters:
consume - true if this is the last request on the Message
Returns:
XMLStreamReader
Throws:
WebServiceException

isConsumed

public boolean isConsumed()
Description copied from interface: XMLPart
isConsumed Return true if the part is consumed. Once consumed, the information in the part is no longer available.

Specified by:
isConsumed in interface XMLPart
Returns:
true if the block is consumed (a method was called with consume=true)

outputTo

public void outputTo(javax.xml.stream.XMLStreamWriter writer,
                     boolean consume)
              throws javax.xml.stream.XMLStreamException,
                     WebServiceException
Description copied from interface: XMLPart
Write out the Message

Specified by:
outputTo in interface XMLPart
Parameters:
writer - XMLStreamWriter
consume - true if this is the last request on the block.
Throws:
WebServiceException
javax.xml.stream.XMLStreamException

removeBodyBlock

public void removeBodyBlock(int index)
                     throws WebServiceException
Description copied from interface: XMLPart
removeBodyBlock Removes the indicated BodyBlock

Specified by:
removeBodyBlock in interface XMLPart
Throws:
WebServiceException

removeHeaderBlock

public void removeHeaderBlock(java.lang.String namespace,
                              java.lang.String localPart)
                       throws WebServiceException
Description copied from interface: XMLPart
removeHeaderBlock Removes all header blocks with this namespace/localpart

Specified by:
removeHeaderBlock in interface XMLPart
Throws:
WebServiceException

setBodyBlock

public void setBodyBlock(int index,
                         Block block)
                  throws WebServiceException
Description copied from interface: XMLPart
setBodyBlock Set the block at the specified index Once set, the Message owns the block. You must use the getBodyBlock method to access it.

Specified by:
setBodyBlock in interface XMLPart
Throws:
WebServiceException

setHeaderBlock

public void setHeaderBlock(java.lang.String namespace,
                           java.lang.String localPart,
                           Block block)
                    throws WebServiceException
Description copied from interface: XMLPart
setHeaderBlock replaces the first existing header block with this new block. If there is no existing header block, one is added to the end of the headers

Specified by:
setHeaderBlock in interface XMLPart
Throws:
WebServiceException

appendHeaderBlock

public void appendHeaderBlock(java.lang.String namespace,
                              java.lang.String localPart,
                              Block block)
                       throws WebServiceException
Description copied from interface: XMLPart
appendHeaderBlock Append the block to the list of header blocks. The Message owns the block. You must use the getHeaderBlock method to access it.

Specified by:
appendHeaderBlock in interface XMLPart
Throws:
WebServiceException

traceString

public java.lang.String traceString(java.lang.String indent)
Description copied from interface: XMLPart
Get a traceString...the trace string dumps the contents of the Block without forcing an underlying ill-performant transformation of the message.

Specified by:
traceString in interface XMLPart
Returns:
String containing trace information

addDataHandler

public void addDataHandler(javax.activation.DataHandler dh,
                           java.lang.String id)
Description copied from interface: Message
Add Attachment

Specified by:
addDataHandler in interface Message
Parameters:
dh - DataHandler (type of Attachment is inferred from dh.getContentType)
id - String which is the Attachment content id
See Also:
addAttachment(Attachment)

getParent

public Message getParent()
Description copied from interface: XMLPart
getParent Get the Message object that this XMLPart is attached to, if it is attached to one at all.

Specified by:
getParent in interface XMLPart
Returns:

setParent

public void setParent(Message msg)
Description copied from interface: XMLPart
setParent Set the Message object that will hold this XMLPart

Specified by:
setParent in interface XMLPart

isMTOMEnabled

public boolean isMTOMEnabled()
Description copied from interface: Message
A message is MTOM enabled if the associated dispatch/client/impl/provider has a binding type that enables MTOM.

Specified by:
isMTOMEnabled in interface Message
Returns:
true if the binding for this message indicates mtom

setMTOMEnabled

public void setMTOMEnabled(boolean b)
Description copied from interface: Message
A message is MTOM enabled if the associated dispatch/client/impl/provider has a binding type that enables MTOM. Indicate whether this is an MTOM message

Specified by:
setMTOMEnabled in interface Message
Parameters:
true - if the binding for this message indicates mtom

getXMLFault

public XMLFault getXMLFault()
                     throws WebServiceException
Description copied from interface: XMLPart
If the XMLPart represents a fault, an XMLFault is returned which describes the fault in a protocol agnostic manner

Specified by:
getXMLFault in interface XMLPart
Returns:
the XMLFault object or null
Throws:
WebServiceException
See Also:
XMLFault

setXMLFault

public void setXMLFault(XMLFault xmlFault)
                 throws WebServiceException
Description copied from interface: XMLPart
Change the XMLPart so that it represents the fault described by XMLFault

Specified by:
setXMLFault in interface XMLPart
Throws:
WebServiceException
See Also:
XMLFault

isFault

public boolean isFault()
                throws WebServiceException
Description copied from interface: XMLPart
Determines whether the XMLPart represents a Fault

Specified by:
isFault in interface XMLPart
Returns:
true if the message represents a fault
Throws:
WebServiceException

getXMLPartContentType

public java.lang.String getXMLPartContentType()
Description copied from interface: XMLPart
The representation of the XMLPart may be in a number of different forms. Currently the forms are UNKNOWN, OM, SOAPENVELOPE, and SPINE. This method returns a String containing one of these types. This method should only be used for trace and testing purposes. The consumer of a Message should not make any decisions based on the representation of the XMLPart

Specified by:
getXMLPartContentType in interface XMLPart
Returns:
String

getStyle

public SOAPBinding.Style getStyle()
Specified by:
getStyle in interface XMLPart
Returns:
the Style (document or rpc)

setStyle

public void setStyle(SOAPBinding.Style style)
              throws WebServiceException
Description copied from interface: XMLPart
Set the Style. If the style is DOCUMENT, the body blocks are located underneath the body element. If the style is set to RPC, then the body blocks are located underneath the rpc operation.

Specified by:
setStyle in interface XMLPart
Parameters:
style - Style
Throws:
WebServiceException
See Also:
indirection

getOperationElement

public QName getOperationElement()
                          throws WebServiceException
Specified by:
getOperationElement in interface XMLPart
Returns:
the QName of the operation element if Style.rpc. Otherwise null
Throws:
WebServiceException

setOperationElement

public void setOperationElement(QName operationQName)
                         throws WebServiceException
Description copied from interface: XMLPart
Set the operation element qname. The operation qname is only used if Style.rpc

Specified by:
setOperationElement in interface XMLPart
Throws:
WebServiceException

getMimeHeaders

public java.util.Map getMimeHeaders()
Specified by:
getMimeHeaders in interface Message
Returns:
get the transport headers map.

setMimeHeaders

public void setMimeHeaders(java.util.Map map)
Description copied from interface: Message
Set the transport headers

Specified by:
setMimeHeaders in interface Message
Parameters:
map - Map

getBodyBlock

public Block getBodyBlock(java.lang.Object context,
                          BlockFactory blockFactory)
                   throws WebServiceException
Description copied from interface: XMLPart
getBodyBlock Get the single Body Block. The BlockFactory and object context are passed in to help create the proper kind of block. This method should only be invoked when it is known that there is zero or one block.

Specified by:
getBodyBlock in interface XMLPart
Returns:
Block or null
Throws:
WebServiceException

setBodyBlock

public void setBodyBlock(Block block)
                  throws WebServiceException
Description copied from interface: XMLPart
setBodyBlock Set this as block as the single block for the message.

Specified by:
setBodyBlock in interface XMLPart
Throws:
WebServiceException

setPostPivot

public void setPostPivot()
Description copied from interface: Message
Indicate that this message is passed the pivot point. For example, this is set in the JAX-WS Dispatcher to indicate

Specified by:
setPostPivot in interface Message

isPostPivot

public boolean isPostPivot()
Specified by:
isPostPivot in interface Message
Returns:
true if post pivot

getIndirection

public int getIndirection()
Description copied from interface: XMLPart
Get indirection. Used to force the code to look for blocks at a particular location. For DOCUMENT the default is 0 For RPC the default is 1 This method is used to override these settings for special cases.

Specified by:
getIndirection in interface XMLPart
Returns:
indirection (0 or 1)

setIndirection

public void setIndirection(int indirection)
Description copied from interface: XMLPart
Set indirection. Used to force the code to look for blocks at a particular location. For DOCUMENT the default is 0 For RPC the default is 1 This method is used to override these settings for special cases.

Specified by:
setIndirection in interface XMLPart
Parameters:
indirection - (0 or 1)

getMessageContext

public MessageContext getMessageContext()
Specified by:
getMessageContext in interface Message
Returns:
JAX-WS MessageContext

setMessageContext

public void setMessageContext(MessageContext messageContext)
Description copied from interface: Message
JAX-WS Message Context that owns the Message

Specified by:
setMessageContext in interface Message

setDoingSWA

public void setDoingSWA(boolean value)
Description copied from interface: Message
Indicate that an SWA DataHandler was added to the message. This information will be used to trigger SWA serialization.

Specified by:
setDoingSWA in interface Message

isDoingSWA

public boolean isDoingSWA()
Specified by:
isDoingSWA in interface Message
Returns:
true if SWA DataHandler is present

close

public void close()
Description copied from interface: XMLPart
Used primarily to ensure the parser is forwarded to the end so it can be closed.

Specified by:
close in interface XMLPart

getHeaderQNames

public java.util.Set<QName> getHeaderQNames()
Specified by:
getHeaderQNames in interface XMLPart
Returns:
QNames of headers


Copyright © 2007 Apache Web Services Project. All Rights Reserved.