Class ExtensionRegistry

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    PopulatedExtensionRegistry

    public class ExtensionRegistry
    extends java.lang.Object
    implements java.io.Serializable
    This class is used to associate serializers, deserializers, and Java implementation types with extensibility elements.
    Author:
    Matthew J. Duftler (duftler@us.ibm.com)
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      ExtensionRegistry()
      Creates the extension registry, and sets the defaultSerializer and defaultDeserializer properties to instances of an UnknownExtensionSerializer, and an UnknownExtensionDeserializer, respectively.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ExtensibilityElement createExtension​(java.lang.Class parentType, javax.xml.namespace.QName elementType)
      Create an instance of the type which was declared to be used to represent extensibility elements with qnames matching elementType, when intended to exist as children of the specified parentType.
      java.util.Set getAllowableExtensions​(java.lang.Class parentType)
      Returns a set of QNames representing the extensibility elements that are allowed as children of the specified parent type.
      ExtensionDeserializer getDefaultDeserializer()
      Get the deserializer to be used when none is found for an encountered element.
      ExtensionSerializer getDefaultSerializer()
      Get the serializer to be used when none is found for an extensibility element.
      void mapExtensionTypes​(java.lang.Class parentType, javax.xml.namespace.QName elementType, java.lang.Class extensionType)
      Declare that the specified extensionType is the concrete class which should be used to represent extensibility elements with qnames matching elementType, that are intended to exist as children of the specified parentType.
      ExtensionDeserializer queryDeserializer​(java.lang.Class parentType, javax.xml.namespace.QName elementType)
      Look up the deserializer for the extensibility element with the qname elementType, which was encountered as an immediate child of the element represented by the specified parentType.
      int queryExtensionAttributeType​(java.lang.Class parentType, javax.xml.namespace.QName attrName)
      Look up the type of the extensibility attribute with the qname attrName, which was defined on an element represented by the specified parentType.
      ExtensionSerializer querySerializer​(java.lang.Class parentType, javax.xml.namespace.QName elementType)
      Look up the serializer to use for the extensibility element with the qname elementType, which was encountered as a child of the specified parentType.
      void registerDeserializer​(java.lang.Class parentType, javax.xml.namespace.QName elementType, ExtensionDeserializer ed)
      Declare that the specified deserializer should be used to deserialize all extensibility elements with a qname matching elementType, when encountered as immediate children of the element represented by the specified parentType.
      void registerExtensionAttributeType​(java.lang.Class parentType, javax.xml.namespace.QName attrName, int attrType)
      Declare that the type of the specified extension attribute, when it occurs as an attribute of the specified parent type, should be assumed to be attrType.
      void registerSerializer​(java.lang.Class parentType, javax.xml.namespace.QName elementType, ExtensionSerializer es)
      Declare that the specified serializer should be used to serialize all extensibility elements with a qname matching elementType, when encountered as children of the specified parentType.
      void setDefaultDeserializer​(ExtensionDeserializer defaultDeser)
      Set the deserializer to be used when none is found for an encountered element.
      void setDefaultSerializer​(ExtensionSerializer defaultSer)
      Set the serializer to be used when none is found for an extensibility element.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • serializerReg

        protected java.util.Map serializerReg
      • deserializerReg

        protected java.util.Map deserializerReg
      • extensionTypeReg

        protected java.util.Map extensionTypeReg
      • extensionAttributeTypeReg

        protected java.util.Map extensionAttributeTypeReg
    • Constructor Detail

      • ExtensionRegistry

        public ExtensionRegistry()
        Creates the extension registry, and sets the defaultSerializer and defaultDeserializer properties to instances of an UnknownExtensionSerializer, and an UnknownExtensionDeserializer, respectively.
    • Method Detail

      • setDefaultSerializer

        public void setDefaultSerializer​(ExtensionSerializer defaultSer)
        Set the serializer to be used when none is found for an extensibility element. Set this to null to have an exception thrown when unexpected extensibility elements are encountered. Default value is an instance of UnknownExtensionSerializer.
        See Also:
        UnknownExtensionSerializer
      • getDefaultSerializer

        public ExtensionSerializer getDefaultSerializer()
        Get the serializer to be used when none is found for an extensibility element. Default value is an instance of UnknownExtensionSerializer.
        See Also:
        UnknownExtensionSerializer
      • setDefaultDeserializer

        public void setDefaultDeserializer​(ExtensionDeserializer defaultDeser)
        Set the deserializer to be used when none is found for an encountered element. Set this to null to have an exception thrown when unexpected extensibility elements are encountered. Default value is an instance of UnknownExtensionDeserializer.
        See Also:
        UnknownExtensionDeserializer
      • getDefaultDeserializer

        public ExtensionDeserializer getDefaultDeserializer()
        Get the deserializer to be used when none is found for an encountered element. Default value is an instance of UnknownExtensionDeserializer.
        See Also:
        UnknownExtensionDeserializer
      • registerSerializer

        public void registerSerializer​(java.lang.Class parentType,
                                       javax.xml.namespace.QName elementType,
                                       ExtensionSerializer es)
        Declare that the specified serializer should be used to serialize all extensibility elements with a qname matching elementType, when encountered as children of the specified parentType.
        Parameters:
        parentType - a class object indicating where in the WSDL definition this extension was encountered. For example, javax.wsdl.Binding.class would be used to indicate this extensibility element was found in the list of extensibility elements belonging to a javax.wsdl.Binding.
        elementType - the qname of the extensibility element
        es - the extension serializer to use
        See Also:
        querySerializer(Class, QName)
      • registerDeserializer

        public void registerDeserializer​(java.lang.Class parentType,
                                         javax.xml.namespace.QName elementType,
                                         ExtensionDeserializer ed)
        Declare that the specified deserializer should be used to deserialize all extensibility elements with a qname matching elementType, when encountered as immediate children of the element represented by the specified parentType.
        Parameters:
        parentType - a class object indicating where in the WSDL document this extensibility element was encountered. For example, javax.wsdl.Binding.class would be used to indicate this element was encountered as an immediate child of a <wsdl:binding> element.
        elementType - the qname of the extensibility element
        ed - the extension deserializer to use
        See Also:
        queryDeserializer(Class, QName)
      • querySerializer

        public ExtensionSerializer querySerializer​(java.lang.Class parentType,
                                                   javax.xml.namespace.QName elementType)
                                            throws WSDLException
        Look up the serializer to use for the extensibility element with the qname elementType, which was encountered as a child of the specified parentType.
        Parameters:
        parentType - a class object indicating where in the WSDL definition this extension was encountered. For example, javax.wsdl.Binding.class would be used to indicate this extensibility element was found in the list of extensibility elements belonging to a javax.wsdl.Binding.
        elementType - the qname of the extensibility element
        Returns:
        the extension serializer, if one was found. If none was found, the behavior depends on the value of the defaultSerializer property. If the defaultSerializer property is set to a non-null value, that value is returned; otherwise, a WSDLException is thrown.
        Throws:
        WSDLException
        See Also:
        registerSerializer(Class, QName, ExtensionSerializer), setDefaultSerializer(ExtensionSerializer)
      • queryDeserializer

        public ExtensionDeserializer queryDeserializer​(java.lang.Class parentType,
                                                       javax.xml.namespace.QName elementType)
                                                throws WSDLException
        Look up the deserializer for the extensibility element with the qname elementType, which was encountered as an immediate child of the element represented by the specified parentType.
        Parameters:
        parentType - a class object indicating where in the WSDL document this extensibility element was encountered. For example, javax.wsdl.Binding.class would be used to indicate this element was encountered as an immediate child of a <wsdl:binding> element.
        elementType - the qname of the extensibility element
        Returns:
        the extension deserializer, if one was found. If none was found, the behavior depends on the value of the defaultDeserializer property. If the defaultDeserializer property is set to a non-null value, that value is returned; otherwise, a WSDLException is thrown.
        Throws:
        WSDLException
        See Also:
        registerDeserializer(Class, QName, ExtensionDeserializer), setDefaultDeserializer(ExtensionDeserializer)
      • getAllowableExtensions

        public java.util.Set getAllowableExtensions​(java.lang.Class parentType)
        Returns a set of QNames representing the extensibility elements that are allowed as children of the specified parent type. Basically, this method returns the keys associated with the set of extension deserializers registered for this parent type. Returns null if no extension deserializers are registered for this parent type.
      • mapExtensionTypes

        public void mapExtensionTypes​(java.lang.Class parentType,
                                      javax.xml.namespace.QName elementType,
                                      java.lang.Class extensionType)
        Declare that the specified extensionType is the concrete class which should be used to represent extensibility elements with qnames matching elementType, that are intended to exist as children of the specified parentType.
        Parameters:
        parentType - a class object indicating where in the WSDL definition this extension would exist. For example, javax.wsdl.Binding.class would be used to indicate this extensibility element would be added to the list of extensibility elements belonging to a javax.wsdl.Binding, after being instantiated.
        elementType - the qname of the extensibility element
        extensionType - the concrete class which should be instantiated
        See Also:
        createExtension(Class, QName)
      • createExtension

        public ExtensibilityElement createExtension​(java.lang.Class parentType,
                                                    javax.xml.namespace.QName elementType)
                                             throws WSDLException
        Create an instance of the type which was declared to be used to represent extensibility elements with qnames matching elementType, when intended to exist as children of the specified parentType. This method allows a user to instantiate an extensibility element without having to know the implementing type.
        Parameters:
        parentType - a class object indicating where in the WSDL definition this extension will exist. For example, javax.wsdl.Binding.class would be used to indicate this extensibility element is going to be added to the list of extensibility elements belonging to a javax.wsdl.Binding, after being instantiated.
        elementType - the qname of the extensibility element
        Returns:
        a new instance of the type used to represent the specified extension
        Throws:
        WSDLException
        See Also:
        mapExtensionTypes(Class, QName, Class)
      • registerExtensionAttributeType

        public void registerExtensionAttributeType​(java.lang.Class parentType,
                                                   javax.xml.namespace.QName attrName,
                                                   int attrType)
        Declare that the type of the specified extension attribute, when it occurs as an attribute of the specified parent type, should be assumed to be attrType.
        Parameters:
        parentType - a class object indicating where in the WSDL document this extensibility attribute was encountered. For example, javax.wsdl.Binding.class would be used to indicate this attribute was defined on a <wsdl:binding> element.
        attrName - the qname of the extensibility attribute
        attrType - one of the constants defined on the AttributeExtensible class
        See Also:
        queryExtensionAttributeType(Class, QName), AttributeExtensible
      • queryExtensionAttributeType

        public int queryExtensionAttributeType​(java.lang.Class parentType,
                                               javax.xml.namespace.QName attrName)
        Look up the type of the extensibility attribute with the qname attrName, which was defined on an element represented by the specified parentType.
        Parameters:
        parentType - a class object indicating where in the WSDL document this extensibility attribute was encountered. For example, javax.wsdl.Binding.class would be used to indicate this attribute was defined on a <wsdl:binding> element.
        attrName - the qname of the extensibility attribute
        Returns:
        one of the constants defined on the AttributeExtensible class
        See Also:
        registerExtensionAttributeType(Class, QName, int), AttributeExtensible