Class BindingImpl

  • All Implemented Interfaces:
    WSBinding, jakarta.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.

    Author:
    WS Development Team
    • Constructor Detail

      • BindingImpl

        protected BindingImpl​(BindingID bindingId,
                              jakarta.xml.ws.WebServiceFeature... features)
    • Method Detail

      • getHandlerChain

        @NotNull
        public List<jakarta.xml.ws.handler.Handler> getHandlerChain()
        Specified by:
        getHandlerChain in interface jakarta.xml.ws.Binding
        Specified by:
        getHandlerChain in interface WSBinding
      • setMode

        public void setMode​(@NotNull
                            jakarta.xml.ws.Service.Mode mode)
      • getKnownHeaders

        public Set<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​(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,
                                         jakarta.xml.ws.WebServiceFeature[] features)
      • getDefaultBinding

        public static WSBinding getDefaultBinding()
      • getBindingID

        public String getBindingID()
        Specified by:
        getBindingID in interface jakarta.xml.ws.Binding
      • getFeature

        @Nullable
        public <F extends jakarta.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.
      • getOperationFeature

        @Nullable
        public <F extends jakarta.xml.ws.WebServiceFeature> F getOperationFeature​(@NotNull
                                                                                  Class<F> featureType,
                                                                                  @NotNull
                                                                                  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
                                        Class<? extends jakarta.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
                                                 Class<? extends jakarta.xml.ws.WebServiceFeature> featureType,
                                                 @NotNull
                                                 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.
      • getOperationFeatures

        @NotNull
        public WebServiceFeatureList getOperationFeatures​(@NotNull
                                                          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
                                                             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
                                                              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
                                                             QName operationName,
                                                             @NotNull
                                                             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
                                         QName operationName,
                                         jakarta.xml.ws.WebServiceFeature... newFeatures)
      • setInputMessageFeatures

        public void setInputMessageFeatures​(@NotNull
                                            QName operationName,
                                            jakarta.xml.ws.WebServiceFeature... newFeatures)
      • setOutputMessageFeatures

        public void setOutputMessageFeatures​(@NotNull
                                             QName operationName,
                                             jakarta.xml.ws.WebServiceFeature... newFeatures)
      • setFaultMessageFeatures

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