Class AbstractExtensionFactory

  • All Implemented Interfaces:
    ExtensionFactory
    Direct Known Subclasses:
    MediaExtensionFactory

    public abstract class AbstractExtensionFactory
    extends Object
    implements ExtensionFactory

    Provides a base implementation for ExtensionFactory instances. By extending this, specific extension factories need only to associate a QName with an implementation class, e.g.,

      public class MyExtensionFactory
        extends AbstractExtensionFactory {
     
        private String NS = "http://example.org/foo/ns"; 
        private QName FOO = new QName(NS, "foo");
     
        public MyExtensionFactory() {
          super(NS);
          addImpl(FOO, Foo.class);
        }
      }
      
      public class Foo extends ElementWrapper { ... }
     
     
    • Method Detail

      • getElementWrapper

        public <T extends Element> T getElementWrapper​(Element internal)
        Description copied from interface: ExtensionFactory
        Abdera's support for static extensions is based on a simple delegation model. Static extension interfaces wrap the dynamic extension API. ExtensionFactory's are handed the internal dynamic element instance and are expected to hand back an object wrapper.
        Specified by:
        getElementWrapper in interface ExtensionFactory
        Parameters:
        internal - The Abdera element that needs to be wrapped
        Returns:
        The wrapper element
      • getMimeType

        public <T extends BaseString getMimeType​(T base)
        Description copied from interface: ExtensionFactory
        Retrieve the mime type for the element
        Specified by:
        getMimeType in interface ExtensionFactory
        Parameters:
        base - An Abdera object
        Returns:
        A MIME media type for the object
      • getNamespaces

        public String[] getNamespaces()
        Description copied from interface: ExtensionFactory
        Returns the Namespace URIs handled by this Extension Factory
        Specified by:
        getNamespaces in interface ExtensionFactory
        Returns:
        A List of Namespace URIs Supported by this Extension
      • handlesNamespace

        public boolean handlesNamespace​(String namespace)
        Description copied from interface: ExtensionFactory
        Returns true if this extension factory handles the specified namespace
        Specified by:
        handlesNamespace in interface ExtensionFactory
        Parameters:
        namespace - The XML namespace of the extension
        Returns:
        True if the namespace is supported by the ExtensionFactory