com.sun.xml.ws.binding
Class BindingImpl

java.lang.Object
  extended by com.sun.xml.ws.binding.BindingImpl
All Implemented Interfaces:
WSBinding, javax.xml.ws.Binding
Direct Known Subclasses:
HTTPBindingImpl, SOAPBindingImpl

public abstract class BindingImpl
extends java.lang.Object
implements WSBinding

Instances are created by the service, which then sets the handler chain on the binding impl.

This class is made abstract as we don't see a situation when a BindingImpl has much meaning without binding id. IOW, for a specific binding there will be a class extending BindingImpl, for example SOAPBindingImpl.

The spi Binding interface extends Binding.


Nested Class Summary
protected static class BindingImpl.MessageKey
          Experimental: Identify messages based on the name of the message and the operation that uses this message.
 
Field Summary
protected static javax.xml.ws.WebServiceFeature[] EMPTY_FEATURES
           
protected  java.util.Map<BindingImpl.MessageKey,WebServiceFeatureList> faultMessageFeatures
           
protected  WebServiceFeatureList features
           
protected  java.util.Map<javax.xml.namespace.QName,WebServiceFeatureList> inputMessageFeatures
           
protected  com.oracle.webservices.api.message.MessageContextFactory messageContextFactory
           
protected  java.util.Map<javax.xml.namespace.QName,WebServiceFeatureList> operationFeatures
           
protected  java.util.Map<javax.xml.namespace.QName,WebServiceFeatureList> outputMessageFeatures
           
protected  javax.xml.ws.Service.Mode serviceMode
           
 
Constructor Summary
protected BindingImpl(BindingID bindingId, javax.xml.ws.WebServiceFeature... features)
           
 
Method Summary
 boolean addKnownHeader(javax.xml.namespace.QName headerQName)
          Adds header QName to set known to be supported by this binding
static BindingImpl create(BindingID bindingId)
           
static BindingImpl create(BindingID bindingId, javax.xml.ws.WebServiceFeature[] features)
           
 Codec createCodec()
           
 AddressingVersion getAddressingVersion()
          Gets the WS-Addressing version of this binding.
 BindingID getBindingId()
          Gets the binding ID, which uniquely identifies the binding.
 java.lang.String getBindingID()
           
static WSBinding getDefaultBinding()
           
 WebServiceFeatureList getFaultMessageFeatures(javax.xml.namespace.QName operationName, javax.xml.namespace.QName messageName)
          Experimental: Returns a list of features associated with WSBinding that apply to one of the fault messages of an operation.
<F extends javax.xml.ws.WebServiceFeature>
F
getFeature(java.lang.Class<F> featureType)
          Gets a WebServiceFeature of the specific type.
 WebServiceFeatureList getFeatures()
          Returns a list of features associated with WSBinding.
 java.util.List<javax.xml.ws.handler.Handler> getHandlerChain()
           
 HandlerConfiguration getHandlerConfig()
           
 WebServiceFeatureList getInputMessageFeatures(javax.xml.namespace.QName operationName)
          Experimental: Returns a list of features associated with WSBinding that apply to the input message of an operation.
 java.util.Set<javax.xml.namespace.QName> getKnownHeaders()
          Returns set of header QNames known to be supported by this binding.
 com.oracle.webservices.api.message.MessageContextFactory getMessageContextFactory()
           
<F extends javax.xml.ws.WebServiceFeature>
F
getOperationFeature(java.lang.Class<F> featureType, javax.xml.namespace.QName operationName)
          Experimental: Gets a WebServiceFeature of the specific type that applies to an operation.
 WebServiceFeatureList getOperationFeatures(javax.xml.namespace.QName operationName)
          Experimental: Returns a list of features associated with WSBinding that apply to a particular operation.
 WebServiceFeatureList getOutputMessageFeatures(javax.xml.namespace.QName operationName)
          Experimental: Returns a list of features associated with WSBinding that apply to the output message of an operation.
 SOAPVersion getSOAPVersion()
          Gets the SOAP version of this binding.
static void initializeJavaActivationHandlers()
           
 boolean isFeatureEnabled(java.lang.Class<? extends javax.xml.ws.WebServiceFeature> feature)
          Checks if a particular WebServiceFeature is enabled.
 boolean isOperationFeatureEnabled(java.lang.Class<? extends javax.xml.ws.WebServiceFeature> featureType, javax.xml.namespace.QName operationName)
          Experimental: Checks if a particular WebServiceFeature on an operation is enabled.
 void setFaultMessageFeatures(javax.xml.namespace.QName operationName, javax.xml.namespace.QName messageName, javax.xml.ws.WebServiceFeature... newFeatures)
           
protected  void setHandlerConfig(HandlerConfiguration handlerConfig)
           
 void setInputMessageFeatures(javax.xml.namespace.QName operationName, javax.xml.ws.WebServiceFeature... newFeatures)
           
 void setMode(javax.xml.ws.Service.Mode mode)
           
 void setOperationFeatures(javax.xml.namespace.QName operationName, javax.xml.ws.WebServiceFeature... newFeatures)
           
 void setOutputMessageFeatures(javax.xml.namespace.QName operationName, javax.xml.ws.WebServiceFeature... newFeatures)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.xml.ws.Binding
setHandlerChain
 

Field Detail

EMPTY_FEATURES

protected static final javax.xml.ws.WebServiceFeature[] EMPTY_FEATURES

features

protected final WebServiceFeatureList features

operationFeatures

protected final java.util.Map<javax.xml.namespace.QName,WebServiceFeatureList> operationFeatures

inputMessageFeatures

protected final java.util.Map<javax.xml.namespace.QName,WebServiceFeatureList> inputMessageFeatures

outputMessageFeatures

protected final java.util.Map<javax.xml.namespace.QName,WebServiceFeatureList> outputMessageFeatures

faultMessageFeatures

protected final java.util.Map<BindingImpl.MessageKey,WebServiceFeatureList> faultMessageFeatures

serviceMode

protected javax.xml.ws.Service.Mode serviceMode

messageContextFactory

protected com.oracle.webservices.api.message.MessageContextFactory messageContextFactory
Constructor Detail

BindingImpl

protected BindingImpl(BindingID bindingId,
                      javax.xml.ws.WebServiceFeature... features)
Method Detail

getHandlerChain

@NotNull
public java.util.List<javax.xml.ws.handler.Handler> getHandlerChain()
Specified by:
getHandlerChain in interface WSBinding
Specified by:
getHandlerChain in interface javax.xml.ws.Binding

getHandlerConfig

public HandlerConfiguration getHandlerConfig()

setHandlerConfig

protected void setHandlerConfig(HandlerConfiguration handlerConfig)

setMode

public void setMode(@NotNull
                    javax.xml.ws.Service.Mode mode)

getKnownHeaders

public java.util.Set<javax.xml.namespace.QName> getKnownHeaders()
Description copied from interface: WSBinding
Returns set of header QNames known to be supported by this binding.

Specified by:
getKnownHeaders in interface WSBinding
Returns:
Set of known QNames

addKnownHeader

public boolean addKnownHeader(javax.xml.namespace.QName headerQName)
Description copied from interface: WSBinding
Adds header QName to set known to be supported by this binding

Specified by:
addKnownHeader in interface WSBinding
Parameters:
headerQName - Known header QName
Returns:
true, if new entry was added; false, if known header QName was already known

getBindingId

@NotNull
public BindingID getBindingId()
Description copied from interface: WSBinding
Gets the binding ID, which uniquely identifies the binding.

The relevant specs define the binding IDs and what they mean. The ID is used in many places to identify the kind of binding (such as SOAP1.1, SOAP1.2, REST, ...)

Specified by:
getBindingId in interface WSBinding
Returns:
Always non-null same value.

getSOAPVersion

public final SOAPVersion getSOAPVersion()
Description copied from interface: WSBinding
Gets the SOAP version of this binding. TODO: clarify what to do with XML/HTTP binding

This is just a short-cut for getBindingID().getSOAPVersion()

Specified by:
getSOAPVersion in interface WSBinding
Returns:
If the binding is using SOAP, this method returns a SOAPVersion constant. If the binding is not based on SOAP, this method returns null. See Message for how a non-SOAP binding shall be handled by Tubes.

getAddressingVersion

public AddressingVersion getAddressingVersion()
Description copied from interface: WSBinding
Gets the WS-Addressing version of this binding.

TODO: clarify what to do with XML/HTTP binding

Specified by:
getAddressingVersion in interface WSBinding
Returns:
If the binding is using SOAP and WS-Addressing is enabled, this method returns a AddressingVersion constant. If binding is not using SOAP or WS-Addressing is not enabled, this method returns null. This might be little slow as it has to go over all the features on binding. Its advisable to cache the addressingVersion wherever possible and reuse it.

createCodec

@NotNull
public final Codec createCodec()

initializeJavaActivationHandlers

public static void initializeJavaActivationHandlers()

create

public static BindingImpl create(@NotNull
                                 BindingID bindingId)

create

public static BindingImpl create(@NotNull
                                 BindingID bindingId,
                                 javax.xml.ws.WebServiceFeature[] features)

getDefaultBinding

public static WSBinding getDefaultBinding()

getBindingID

public java.lang.String getBindingID()
Specified by:
getBindingID in interface javax.xml.ws.Binding

getFeature

@Nullable
public <F extends javax.xml.ws.WebServiceFeature> F getFeature(@NotNull
                                                                        java.lang.Class<F> featureType)
Description copied from interface: WSBinding
Gets a WebServiceFeature of the specific type.

Specified by:
getFeature in interface WSBinding
Parameters:
featureType - The type of the feature to retrieve.
Returns:
If the feature is present and enabled, return a non-null instance. Otherwise null.

getOperationFeature

@Nullable
public <F extends javax.xml.ws.WebServiceFeature> F getOperationFeature(@NotNull
                                                                                 java.lang.Class<F> featureType,
                                                                                 @NotNull
                                                                                 javax.xml.namespace.QName operationName)
Description copied from interface: WSBinding
Experimental: Gets a WebServiceFeature of the specific type that applies to an operation.

Specified by:
getOperationFeature in interface WSBinding
Parameters:
featureType - The type of the feature to retrieve.
operationName - The WSDL name of the operation.
Returns:
If the feature is present and enabled, return a non-null instance. Otherwise null.

isFeatureEnabled

public boolean isFeatureEnabled(@NotNull
                                java.lang.Class<? extends javax.xml.ws.WebServiceFeature> feature)
Description copied from interface: WSBinding
Checks if a particular WebServiceFeature is enabled.

Specified by:
isFeatureEnabled in interface WSBinding
Returns:
true if enabled.

isOperationFeatureEnabled

public boolean isOperationFeatureEnabled(@NotNull
                                         java.lang.Class<? extends javax.xml.ws.WebServiceFeature> featureType,
                                         @NotNull
                                         javax.xml.namespace.QName operationName)
Description copied from interface: WSBinding
Experimental: Checks if a particular WebServiceFeature on an operation is enabled.

Specified by:
isOperationFeatureEnabled in interface WSBinding
operationName - The WSDL name of the operation.
Returns:
true if enabled.

getFeatures

@NotNull
public WebServiceFeatureList getFeatures()
Description copied from interface: WSBinding
Returns a list of features associated with WSBinding.

Specified by:
getFeatures in interface WSBinding

getOperationFeatures

@NotNull
public WebServiceFeatureList getOperationFeatures(@NotNull
                                                          javax.xml.namespace.QName operationName)
Description copied from interface: WSBinding
Experimental: Returns a list of features associated with WSBinding that apply to a particular operation.

Specified by:
getOperationFeatures in interface WSBinding
Parameters:
operationName - The WSDL name of the operation.

getInputMessageFeatures

@NotNull
public WebServiceFeatureList getInputMessageFeatures(@NotNull
                                                             javax.xml.namespace.QName operationName)
Description copied from interface: WSBinding
Experimental: Returns a list of features associated with WSBinding that apply to the input message of an operation.

Specified by:
getInputMessageFeatures in interface WSBinding
Parameters:
operationName - The WSDL name of the operation.

getOutputMessageFeatures

@NotNull
public WebServiceFeatureList getOutputMessageFeatures(@NotNull
                                                              javax.xml.namespace.QName operationName)
Description copied from interface: WSBinding
Experimental: Returns a list of features associated with WSBinding that apply to the output message of an operation.

Specified by:
getOutputMessageFeatures in interface WSBinding
Parameters:
operationName - The WSDL name of the operation.

getFaultMessageFeatures

@NotNull
public WebServiceFeatureList getFaultMessageFeatures(@NotNull
                                                             javax.xml.namespace.QName operationName,
                                                             @NotNull
                                                             javax.xml.namespace.QName messageName)
Description copied from interface: WSBinding
Experimental: Returns a list of features associated with WSBinding that apply to one of the fault messages of an operation.

Specified by:
getFaultMessageFeatures in interface WSBinding
Parameters:
operationName - The WSDL name of the operation.
messageName - The WSDL name of the fault message.

setOperationFeatures

public void setOperationFeatures(@NotNull
                                 javax.xml.namespace.QName operationName,
                                 javax.xml.ws.WebServiceFeature... newFeatures)

setInputMessageFeatures

public void setInputMessageFeatures(@NotNull
                                    javax.xml.namespace.QName operationName,
                                    javax.xml.ws.WebServiceFeature... newFeatures)

setOutputMessageFeatures

public void setOutputMessageFeatures(@NotNull
                                     javax.xml.namespace.QName operationName,
                                     javax.xml.ws.WebServiceFeature... newFeatures)

setFaultMessageFeatures

public void setFaultMessageFeatures(@NotNull
                                    javax.xml.namespace.QName operationName,
                                    @NotNull
                                    javax.xml.namespace.QName messageName,
                                    javax.xml.ws.WebServiceFeature... newFeatures)

getMessageContextFactory

@NotNull
public com.oracle.webservices.api.message.MessageContextFactory getMessageContextFactory()
Specified by:
getMessageContextFactory in interface WSBinding
Returns:
A MessageContextFactory configured according to the binding's features.


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