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 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.


Field Summary
protected  WebServiceFeatureList features
           
 
Constructor Summary
protected BindingImpl(BindingID bindingId)
           
 
Method Summary
 void addFeature(javax.xml.ws.WebServiceFeature newFeature)
           
static BindingImpl create(BindingID bindingId)
           
static BindingImpl create(BindingID bindingId, javax.xml.ws.WebServiceFeature[] features)
           
 Codec createCodec()
           
protected abstract  HandlerConfiguration createHandlerConfig(List<javax.xml.ws.handler.Handler> handlerChain)
           
 AddressingVersion getAddressingVersion()
          Gets the WS-Addressing version of this binding.
 BindingID getBindingId()
          Gets the binding ID, which uniquely identifies the binding.
 String getBindingID()
           
static WSBinding getDefaultBinding()
           
<F extends javax.xml.ws.WebServiceFeature>
F
getFeature(Class<F> featureType)
          Gets a WebServiceFeature of the specific type.
 WebServiceFeatureList getFeatures()
          Returns a list of features associated with WSBinding.
 List<javax.xml.ws.handler.Handler> getHandlerChain()
           
 HandlerConfiguration getHandlerConfig()
           
 SOAPVersion getSOAPVersion()
          Gets the SOAP version of this binding.
 boolean isFeatureEnabled(Class<? extends javax.xml.ws.WebServiceFeature> feature)
          Checks if a particular WebServiceFeature is enabled.
 void setFeatures(javax.xml.ws.WebServiceFeature... newFeatures)
           
 void setHandlerChain(List<javax.xml.ws.handler.Handler> chain)
          Sets the handlers on the binding and then sorts the handlers in to logical and protocol handlers.
protected  void setHandlerConfig(HandlerConfiguration handlerConfig)
          This is called when ever Binding.setHandlerChain() or SOAPBinding.setRoles() is called.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

features

protected final WebServiceFeatureList features
Constructor Detail

BindingImpl

protected BindingImpl(BindingID bindingId)
Method Detail

getHandlerChain

@NotNull
public 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()

setHandlerChain

public void setHandlerChain(List<javax.xml.ws.handler.Handler> chain)
Sets the handlers on the binding and then sorts the handlers in to logical and protocol handlers. Creates a new HandlerConfiguration object and sets it on the BindingImpl.

Specified by:
setHandlerChain in interface javax.xml.ws.Binding

setHandlerConfig

protected void setHandlerConfig(HandlerConfiguration handlerConfig)
This is called when ever Binding.setHandlerChain() or SOAPBinding.setRoles() is called. This sorts out the Handlers into Logical and SOAP Handlers and sets the HandlerConfiguration.


createHandlerConfig

protected abstract HandlerConfiguration createHandlerConfig(List<javax.xml.ws.handler.Handler> handlerChain)

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 shor-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()

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 String getBindingID()
Specified by:
getBindingID in interface javax.xml.ws.Binding

getFeature

@Nullable
public <F extends javax.xml.ws.WebServiceFeature> F getFeature(@NotNull
                                                                        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.

isFeatureEnabled

public boolean isFeatureEnabled(@NotNull
                                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.

getFeatures

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

Specified by:
getFeatures in interface WSBinding

setFeatures

public void setFeatures(javax.xml.ws.WebServiceFeature... newFeatures)

addFeature

public void addFeature(@NotNull
                       javax.xml.ws.WebServiceFeature newFeature)