com.ibm.websphere.fabric.da
Class PendingRequest

java.lang.Object
  extended by com.ibm.websphere.fabric.da.PendingRequest
All Implemented Interfaces:
java.io.Serializable

public abstract class PendingRequest
extends java.lang.Object
implements java.io.Serializable

Representation of a request that is being serviced by Dynamic Assembler. These requests have been sent to Dynamic Assembler, but it's ultimate destination has not been chosen yet. Broadly, such requests fall into two phases. The first is the context extraction phase, where industry, deployment and service specific logic extracts message snippets salient to Dynamic Assembly. The second is the policy based guard phase, where the (endpoint selection) is already known, and the decision of whether to proceed or abort the current service invocation us being made.

Version:
$Id: $
Author:
dilumr@us.ibm.com
See Also:
Serialized Form

Constructor Summary
PendingRequest()
           
 
Method Summary
abstract  CompositePolicy<PolicyAssertion,Moment> getCompositePolicy()
          The composite policy that will be used for selection policy.
abstract  Context getContext()
          The context under which this request is being made/processed.
abstract  commonj.sdo.DataObject getFirstBodyElement()
          The actual input message without any wrappers that may have been added by the container.
abstract  commonj.sdo.DataObject getMessageBody()
          The body of the pending request's message.
abstract  java.lang.String getOperationName()
          The operation name within the WSDL.
abstract  java.lang.String getPortType()
          The WSDL PortType URI, also called the service interface name within Fabric's domain model.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PendingRequest

public PendingRequest()
Method Detail

getPortType

public abstract java.lang.String getPortType()
The WSDL PortType URI, also called the service interface name within Fabric's domain model.

Returns:
non-null string.

getOperationName

public abstract java.lang.String getOperationName()
The operation name within the WSDL.

Returns:
non-null string.

getContext

public abstract Context getContext()
The context under which this request is being made/processed. This includes all information from the context's ancestry, as well as any contextual information injected by any other context extractors that preceded the current observer of the context.

Returns:
non-null context.

getCompositePolicy

public abstract CompositePolicy<PolicyAssertion,Moment> getCompositePolicy()
The composite policy that will be used for selection policy.

Returns:
null for context extractors; non-null for policy based guards.

getMessageBody

public abstract commonj.sdo.DataObject getMessageBody()
The body of the pending request's message. Use only if the input message does not conform to the ideal of a single complex data type for input.

Returns:
non-null (SDO) data object.

getFirstBodyElement

public abstract commonj.sdo.DataObject getFirstBodyElement()
The actual input message without any wrappers that may have been added by the container. If the original message is wrapped, it is assumed that the wrapper is a Sequence of Sequences, each sequence having exactly 1 element. This is the "normal" case for ideal invocation messages where there is a single complex data type being passed in the input message. However, note that if the input message being processed contains multiple objects in either sequence (for example, an RPC-style request, or a request formed with multiple separate input values), only the first will be used.

If the message does not have either sequence, or has something other than a sequence, then it is assumed that the message is not wrapped, and this method returns the entire original message. Note that this may happen in certain situations involving BPELs that invoke Dynamic Assembler (DA) components directly. In those situations, the message is not wrapped at all, so the message returned by this method is the same as what would have been inside the wrappers in other situations. So, this method is good to use when you are unsure about how the DA component is going to be invoked.

Returns:
The DataObject found according to the above rules, or else the original body of the pending request's message.


Copyright © 2002-2009 IBM. All Rights Reserved.