org.apache.abdera.util
Class AbstractExtensionFactory

java.lang.Object
  extended by org.apache.abdera.util.AbstractExtensionFactory
All Implemented Interfaces:
ExtensionFactory
Direct Known Subclasses:
ErrorExtensionFactory, FeaturesExtensionFactory, FooExtensionFactory, MediaExtensionFactory, OpenSearchExtensionFactory, RssExtensionFactory, SharingExtensionFactory, ThreadExtensionFactory, TombstonesExtensionFactory

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


Constructor Summary
protected AbstractExtensionFactory(String... namespaces)
           
 
Method Summary
protected  AbstractExtensionFactory addImpl(QName qname, Class<? extends ElementWrapper> impl)
          Associate a QName with an implementation class
protected  AbstractExtensionFactory addMimeType(QName qname, String mimetype)
          Associate a MIME media type for the specific QName
<T extends Element>
T
getElementWrapper(Element internal)
          Abdera's support for static extensions is based on a simple delegation model.
<T extends Base>
String
getMimeType(T base)
          Retrieve the mime type for the element
 String[] getNamespaces()
          Returns the Namespace URIs handled by this Extension Factory
 boolean handlesNamespace(String namespace)
          Returns true if this extension factory handles the specified namespace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractExtensionFactory

protected AbstractExtensionFactory(String... namespaces)
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

addMimeType

protected AbstractExtensionFactory addMimeType(QName qname,
                                               String mimetype)
Associate a MIME media type for the specific QName


addImpl

protected AbstractExtensionFactory addImpl(QName qname,
                                           Class<? extends ElementWrapper> impl)
Associate a QName with an implementation class


getMimeType

public <T extends Base> String 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


Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.