org.apache.ode.bpel.engine

## Class PartnerRoleMessageExchangeImpl

- java.lang.Object
- - org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl

- All Implemented Interfaces:
    MessageExchange, PartnerRoleMessageExchange

      public class PartnerRoleMessageExchangeImpl
      extends java.lang.Object
      implements PartnerRoleMessageExchange

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.ode.bpel.iapi.MessageExchange

      `MessageExchange.FailureType, MessageExchange.MessageExchangePattern, MessageExchange.Status`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static Messages` | `__msgs`
    `protected MessageExchangeDAO` | `_dao`
    `protected BpelEngineImpl` | `_engine`
    `protected EndpointReference` | `_epr`
    `protected java.lang.Long` | `_iid` Process-Instance identifier.
    `protected javax.wsdl.Operation` | `_operation`
    `protected javax.wsdl.PortType` | `_portType`

    - ### Fields inherited from interface org.apache.ode.bpel.iapi.MessageExchange

      `PROPERTY_SEP_MYROLE_SESSIONID, PROPERTY_SEP_PARTNERROLE_EPR, PROPERTY_SEP_PARTNERROLE_SESSIONID`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `PartnerRoleMessageExchangeImpl(BpelEngineImpl engine, MessageExchangeDAO dao, javax.wsdl.PortType portType, javax.wsdl.Operation operation, EndpointReference epr, EndpointReference myRoleEPR, PartnerRoleChannel channel)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Message` | `createMessage(javax.xml.namespace.QName msgType)` Create a message associated with this exchange.
    `javax.xml.namespace.QName` | `getCaller()` Get the identifier of the process that created this message exchange.
    `PartnerRoleChannel` | `getChannel()` Get the communication channel.
    `MessageExchangeDAO` | `getDAO()`
    `EndpointReference` | `getEndpointReference()` Get a reference to the end-point targeted by this message exchange.
    `javax.xml.namespace.QName` | `getFault()` Get the fault type.
    `java.lang.String` | `getFaultExplanation()`
    `Message` | `getFaultResponse()` Get the fault resposne message.
    `java.lang.String` | `getMessageExchangeId()` Get the message exchange identifier.
    `MessageExchange.MessageExchangePattern` | `getMessageExchangePattern()` Return the type of message-exchange that resulted form this invocation (request only/request-respone).
    `EndpointReference` | `getMyRoleEndpointReference()` Get the `EndpointReference` associated with the my-role of the partner link to which this message exchange belongs.
    `javax.wsdl.Operation` | `getOperation()` Get the operation description for this message exchange.
    `java.lang.String` | `getOperationName()` Get the name of the operation (WSDL 1.1) / message exchange (WSDL 1.2?).
    `MessageExchange.MessageExchangePattern` | `getPattern()`
    `javax.wsdl.PortType` | `getPortType()` Get the port type description for this message exchange.
    `java.lang.String` | `getProperty(java.lang.String key)` Get a message exchange property.
    `java.util.Set<java.lang.String>` | `getPropertyNames()` Get a set containing the names of the defined properties.
    `Message` | `getRequest()` Get the request message.
    `Message` | `getResponse()` Get the response message.
    `MessageExchange.Status` | `getStatus()` Get the message exchange status.
    `int` | `getSubscriberCount()`
    `boolean` | `isTransactionPropagated()`
    `void` | `release()` Should be called by the external partner when it's done with the message exchange.
    `void` | `reply(Message response)` Indicate that the partner has responded to the message exchange.
    `void` | `replyAsync()` Indicate that the response to the request/response operation is not yet available and that the response will be delivered asynchronously.
    `void` | `replyOneWayOk()` Indicate that the partner processed the one-way invocation successfully.
    `void` | `replyWithFailure(MessageExchange.FailureType type, java.lang.String description, org.w3c.dom.Element details)` Indicate that the partner has failed to process the message exchange.
    `void` | `replyWithFault(javax.xml.namespace.QName faultType, Message outputFaultMessage)` Indicate that the partner faulted in processing the message exchange.
    `protected void` | `responseReceived()`
    `void` | `setEndpointReference(EndpointReference ref)`
    `void` | `setProperty(java.lang.String key, java.lang.String value)` Set a message exchange property.
    `void` | `setSubscriberCount(int subscriberCount)`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.ode.bpel.iapi.MessageExchange

      `createMessage, getEndpointReference, getFault, getFaultExplanation, getFaultResponse, getMessageExchangeId, getMessageExchangePattern, getOperation, getOperationName, getPortType, getProperty, getPropertyNames, getRequest, getResponse, getStatus, isTransactionPropagated, release, setProperty`

- - ### Field Detail

    - #### __msgs

          protected static final Messages __msgs

    - #### _iid

          protected java.lang.Long _iid

      Process-Instance identifier.

    - #### _portType

          protected javax.wsdl.PortType _portType

    - #### _operation

          protected javax.wsdl.Operation _operation

    - #### _engine

          protected final BpelEngineImpl _engine

    - #### _epr

          protected EndpointReference _epr

    - #### _dao

          protected MessageExchangeDAO _dao

  - ### Constructor Detail

    - #### PartnerRoleMessageExchangeImpl

          protected PartnerRoleMessageExchangeImpl(BpelEngineImpl engine,
                                                   MessageExchangeDAO dao,
                                                   javax.wsdl.PortType portType,
                                                   javax.wsdl.Operation operation,
                                                   EndpointReference epr,
                                                   EndpointReference myRoleEPR,
                                                   PartnerRoleChannel channel)

  - ### Method Detail

    - #### replyOneWayOk

          public void replyOneWayOk()

      Description copied from interface: `PartnerRoleMessageExchange`
      Indicate that the partner processed the one-way invocation successfully.
      Specified by:
        `replyOneWayOk` in interface `PartnerRoleMessageExchange`

    - #### replyAsync

          public void replyAsync()

      Description copied from interface: `PartnerRoleMessageExchange`
      Indicate that the response to the request/response operation is not yet available and that the response will be delivered asynchronously.
      Specified by:
        `replyAsync` in interface `PartnerRoleMessageExchange`

    - #### replyWithFault

          public void replyWithFault(javax.xml.namespace.QName faultType,
                                     Message outputFaultMessage)
                              throws BpelEngineException

      Description copied from interface: `PartnerRoleMessageExchange`
      Indicate that the partner faulted in processing the message exchange.
      Specified by:
        `replyWithFault` in interface `PartnerRoleMessageExchange`
      Parameters:
        `faultType` - fault type
        `outputFaultMessage` - the input message
      Throws:
        `BpelEngineException`

    - #### reply

          public void reply(Message response)
                     throws BpelEngineException

      Description copied from interface: `PartnerRoleMessageExchange`
      Indicate that the partner has responded to the message exchange.
      Specified by:
        `reply` in interface `PartnerRoleMessageExchange`
      Parameters:
        `response` - the response from the partner
      Throws:
        `BpelEngineException`

    - #### replyWithFailure

          public void replyWithFailure(MessageExchange.FailureType type,
                                       java.lang.String description,
                                       org.w3c.dom.Element details)
                                throws BpelEngineException

      Description copied from interface: `PartnerRoleMessageExchange`
      Indicate that the partner has failed to process the message exchange.
      Specified by:
        `replyWithFailure` in interface `PartnerRoleMessageExchange`
      Parameters:
        `type` - type of failure
        `description` - description of failure
      Throws:
        `BpelEngineException`

    - #### getCaller

          public javax.xml.namespace.QName getCaller()

      Description copied from interface: `PartnerRoleMessageExchange`
      Get the identifier of the process that created this message exchange.
      Specified by:
        `getCaller` in interface `PartnerRoleMessageExchange`
      Returns:

    - #### toString

          public java.lang.String toString()

    - #### getChannel

          public PartnerRoleChannel getChannel()

      Description copied from interface: `PartnerRoleMessageExchange`
      Get the communication channel.
      Specified by:
        `getChannel` in interface `PartnerRoleMessageExchange`
      Returns:
        communication channel

    - #### getMyRoleEndpointReference

          public EndpointReference getMyRoleEndpointReference()

      Description copied from interface: `PartnerRoleMessageExchange`
      Get the `EndpointReference` associated with the my-role of the partner link to which this message exchange belongs. This method is typically used to provide protocol-specific "callback" mechanisms.
      Specified by:
        `getMyRoleEndpointReference` in interface `PartnerRoleMessageExchange`
      Returns:
        endpoint reference associate with the corresponding my-role, or null if no my-role is defined

    - #### getMessageExchangeId

          public java.lang.String getMessageExchangeId()
                                                throws BpelEngineException

      Description copied from interface: `MessageExchange`
      Get the message exchange identifier. This identifier should be globally unique as the BPEL engine may keep identifiers for extended periods of time.
      Specified by:
        `getMessageExchangeId` in interface `MessageExchange`
      Returns:
        unique message exchange identifier
      Throws:
        `BpelEngineException`

    - #### getOperationName

          public java.lang.String getOperationName()
                                            throws BpelEngineException

      Description copied from interface: `MessageExchange`
      Get the name of the operation (WSDL 1.1) / message exchange (WSDL 1.2?).
      Specified by:
        `getOperationName` in interface `MessageExchange`
      Returns:
        name of the operation (WSDL 1.1) /message exchange (WSDL 1.2?).
      Throws:
        `BpelEngineException`

    - #### getMessageExchangePattern

          public MessageExchange.MessageExchangePattern getMessageExchangePattern()

      Description copied from interface: `MessageExchange`
      Return the type of message-exchange that resulted form this invocation (request only/request-respone). If a `MessageExchange.MessageExchangePattern.REQUEST_RESPONSE` message-exchange was created, then the caller should expect a response in the future.
      Specified by:
        `getMessageExchangePattern` in interface `MessageExchange`
      Returns:
        type of message exchange created by the invocation

    - #### isTransactionPropagated

          public boolean isTransactionPropagated()
                                          throws BpelEngineException

      Specified by:
        `isTransactionPropagated` in interface `MessageExchange`
      Throws:
        `BpelEngineException`

    - #### getResponse

          public Message getResponse()

      Description copied from interface: `MessageExchange`
      Get the response message.
      Specified by:
        `getResponse` in interface `MessageExchange`
      Returns:
        response message (or null if not avaiable)

    - #### getFault

          public javax.xml.namespace.QName getFault()

      Description copied from interface: `MessageExchange`
      Get the fault type.
      Specified by:
        `getFault` in interface `MessageExchange`
      Returns:
        fault type, or `null` if not available/applicable.

    - #### getFaultResponse

          public Message getFaultResponse()

      Description copied from interface: `MessageExchange`
      Get the fault resposne message.
      Specified by:
        `getFaultResponse` in interface `MessageExchange`
      Returns:
        fault response, or `null` if not available/applicable.

    - #### getFaultExplanation

          public java.lang.String getFaultExplanation()

      Specified by:
        `getFaultExplanation` in interface `MessageExchange`

    - #### getPattern

          public MessageExchange.MessageExchangePattern getPattern()

    - #### getStatus

          public MessageExchange.Status getStatus()

      Description copied from interface: `MessageExchange`
      Get the message exchange status.
      Specified by:
        `getStatus` in interface `MessageExchange`
      Returns:

    - #### getRequest

          public Message getRequest()

      Description copied from interface: `MessageExchange`
      Get the request message.
      Specified by:
        `getRequest` in interface `MessageExchange`
      Returns:
        request message

    - #### getOperation

          public javax.wsdl.Operation getOperation()

      Description copied from interface: `MessageExchange`
      Get the operation description for this message exchange. It is possible that the description cannot be resolved, for example if the EPR is unknown or if the operation does not exist. TODO: How to get rid of the WSDL4j dependency?
      Specified by:
        `getOperation` in interface `MessageExchange`
      Returns:
        WSDL operation description or `null` if not availble

    - #### getPortType

          public javax.wsdl.PortType getPortType()

      Description copied from interface: `MessageExchange`
      Get the port type description for this message exchange. It is possible that the description cannot be resolved, for example if the EPR is unknown or if the operation does not exist. TODO: How to get rid of the WSDL4j dependency?
      Specified by:
        `getPortType` in interface `MessageExchange`
      Returns:
        WSDL port type description or `null` if not available.

    - #### getDAO

          public MessageExchangeDAO getDAO()

    - #### createMessage

          public Message createMessage(javax.xml.namespace.QName msgType)

      Description copied from interface: `MessageExchange`
      Create a message associated with this exchange.
      Specified by:
        `createMessage` in interface `MessageExchange`
      Parameters:
        `msgType` - message type
      Returns:
        a new `Message`

    - #### setEndpointReference

          public void setEndpointReference(EndpointReference ref)

    - #### getEndpointReference

          public EndpointReference getEndpointReference()
                                                 throws BpelEngineException

      Description copied from interface: `MessageExchange`
      Get a reference to the end-point targeted by this message exchange.
      Specified by:
        `getEndpointReference` in interface `MessageExchange`
      Returns:
        end-point reference for this message exchange
      Throws:
        `BpelEngineException`

    - #### getProperty

          public java.lang.String getProperty(java.lang.String key)

      Description copied from interface: `MessageExchange`
      Get a message exchange property.
      Specified by:
        `getProperty` in interface `MessageExchange`
      Parameters:
        `key` - property key
      Returns:
        property value

    - #### setProperty

          public void setProperty(java.lang.String key,
                                  java.lang.String value)

      Description copied from interface: `MessageExchange`
      Set a message exchange property. Message exchange properties are not interpreted by the engine--they exist to enable the integration layer to persist information about the exchange.
      Specified by:
        `setProperty` in interface `MessageExchange`
      Parameters:
        `key` - property key
        `value` - property value

    - #### getPropertyNames

          public java.util.Set<java.lang.String> getPropertyNames()

      Description copied from interface: `MessageExchange`
      Get a set containing the names of the defined properties.
      Specified by:
        `getPropertyNames` in interface `MessageExchange`
      Returns:
        set of property names.

    - #### getSubscriberCount

          public int getSubscriberCount()

    - #### setSubscriberCount

          public void setSubscriberCount(int subscriberCount)

    - #### release

          public void release()

      Description copied from interface: `MessageExchange`
      Should be called by the external partner when it's done with the message exchange. Ncessary for a better resource management and proper mex cleanup.
      Specified by:
        `release` in interface `MessageExchange`

    - #### responseReceived

          protected void responseReceived()