com.sun.xml.ws.client.sei
Class ResponseBuilder

java.lang.Object
  extended by com.sun.xml.ws.client.sei.ResponseBuilder
Direct Known Subclasses:
ResponseBuilder.AttachmentBuilder, ResponseBuilder.Body, ResponseBuilder.Composite, ResponseBuilder.DocLit, ResponseBuilder.Header, ResponseBuilder.None, ResponseBuilder.NullSetter, ResponseBuilder.RpcLit

public abstract class ResponseBuilder
extends Object

Reads a response Message, disassembles it, and moves obtained Java values to the expected places.


Nested Class Summary
static class ResponseBuilder.AttachmentBuilder
          Reads an Attachment into a Java parameter.
static class ResponseBuilder.Body
          Reads the whole payload into a single JAXB bean.
static class ResponseBuilder.Composite
          ResponseBuilder that is a composition of multiple ResponseBuilders.
static class ResponseBuilder.DocLit
          Treats a payload as multiple parts wrapped into one element, and processes all such wrapped parts.
static class ResponseBuilder.Header
          Reads a header into a JAXB object.
(package private) static class ResponseBuilder.None
           
static class ResponseBuilder.NullSetter
          ResponseBuilder that sets the VM uninitialized value to the type.
static class ResponseBuilder.RpcLit
          Treats a payload as multiple parts wrapped into one element, and processes all such wrapped parts.
(package private) static class ResponseBuilder.WrappedPartBuilder
           
 
Field Summary
static ResponseBuilder NONE
          The singleton instance that produces null return value.
protected  Map<QName,ResponseBuilder.WrappedPartBuilder> wrappedParts
          ResponseBuilder.WrappedPartBuilder keyed by the element name (inside the wrapper element.)
protected  QName wrapperName
           
 
Constructor Summary
ResponseBuilder()
           
 
Method Summary
static Object getVMUninitializedValue(Type type)
          Returns the 'uninitialized' value for the given type.
static String getWSDLPartName(Attachment att)
          Gets the WSDL part name of this attachment.
abstract  Object readResponse(Message reply, Object[] args)
          Reads a response Message, disassembles it, and moves obtained Java values to the expected places.
protected  Object readWrappedResponse(Message msg, Object[] args)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

wrappedParts

protected Map<QName,ResponseBuilder.WrappedPartBuilder> wrappedParts
ResponseBuilder.WrappedPartBuilder keyed by the element name (inside the wrapper element.)


wrapperName

protected QName wrapperName

NONE

public static ResponseBuilder NONE
The singleton instance that produces null return value. Used for operations that doesn't have any output.

Constructor Detail

ResponseBuilder

public ResponseBuilder()
Method Detail

readResponse

public abstract Object readResponse(Message reply,
                                    Object[] args)
                             throws JAXBException,
                                    javax.xml.stream.XMLStreamException
Reads a response Message, disassembles it, and moves obtained Java values to the expected places.

Parameters:
reply - The reply Message to be de-composed.
args - The Java arguments given to the SEI method invocation. Some parts of the reply message may be set to Holders in the arguments.
Returns:
If a part of the reply message is returned as a return value from the SEI method, this method returns that value. Otherwise null.
Throws:
JAXBException - if there's an error during unmarshalling the reply message.
javax.xml.stream.XMLStreamException - if there's an error during unmarshalling the reply message.

readWrappedResponse

protected Object readWrappedResponse(Message msg,
                                     Object[] args)
                              throws JAXBException,
                                     javax.xml.stream.XMLStreamException
Throws:
JAXBException
javax.xml.stream.XMLStreamException

getVMUninitializedValue

public static Object getVMUninitializedValue(Type type)
Returns the 'uninitialized' value for the given type.

For primitive types, it's '0', and for reference types, it's null.


getWSDLPartName

public static final String getWSDLPartName(Attachment att)
Gets the WSDL part name of this attachment.

According to WSI AP 1.0

 3.8 Value-space of Content-Id Header
   Definition: content-id part encoding
   The "content-id part encoding" consists of the concatenation of:
 The value of the name attribute of the wsdl:part element referenced by the mime:content, in which characters disallowed in content-id headers (non-ASCII characters as represented by code points above 0x7F) are escaped as follows:
     o Each disallowed character is converted to UTF-8 as one or more bytes.
     o Any bytes corresponding to a disallowed character are escaped with the URI escaping mechanism (that is, converted to %HH, where HH is the hexadecimal notation of the byte value).
     o The original character is replaced by the resulting character sequence.
 The character '=' (0x3D).
 A globally unique value such as a UUID.
 The character '@' (0x40).
 A valid domain name under the authority of the entity constructing the message.
 
So a wsdl:part fooPart will be encoded as:

Returns:
null if the parsing fails.


Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.