org.dspace.core
Class SelfNamedPlugin

java.lang.Object
  extended by org.dspace.core.SelfNamedPlugin
Direct Known Subclasses:
DCInputAuthority, MODSDisseminationCrosswalk, PDFPackager, QDCCrosswalk, SimpleDCDisseminationCrosswalk, XHTMLHeadDisseminationCrosswalk, XSLTCrosswalk

public abstract class SelfNamedPlugin
extends Object

Simple lightweight "framework" for managing plugins.

This is a superclass of all classes which are managed as self-named plugins. They must extend SelfNamedPlugin or its subclass.

Unfortunately, this has to be an abstract class because an interface may not have static methods. The pluginAliases method is static so it can be invoked without creating an instance, and thus let the aliases live in the class itself so there is no need for name mapping in a separate configuration file.

See the documentation in the PluginManager class for more details.

Version:
$Revision: 3762 $
Author:
Larry Stone
See Also:
PluginManager

Constructor Summary
SelfNamedPlugin()
           
 
Method Summary
 String getPluginInstanceName()
          Get an instance's particular name.
static String[] getPluginNames()
          Get the names of this plugin implementation.
protected  void setPluginInstanceName(String name)
          Set the name under which this plugin was instantiated.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SelfNamedPlugin

public SelfNamedPlugin()
Method Detail

getPluginNames

public static String[] getPluginNames()
Get the names of this plugin implementation. Returns all names to which this plugin answers.

A name should be a short generic name illustrative of the service, e.g. "PDF", "JPEG", "GIF" for media filters.

Each name must be unique among all the plugins implementing any given interface, but it can be the same as a name of a plugin for a different interface. For example, two classes may each have a "default" name if they do not implement any of the same interfaces.

Returns:
array of names of this plugin

getPluginInstanceName

public String getPluginInstanceName()
Get an instance's particular name. Returns the name by which the class was chosen when this instance was created. Only works for instances created by PluginManager, or if someone remembers to call setPluginName.

Useful when the implementation class wants to be configured differently when it is invoked under different names.

Returns:
name or null if not available.

setPluginInstanceName

protected void setPluginInstanceName(String name)
Set the name under which this plugin was instantiated. Not to be invoked by application code, it is called automatically by PluginManager.getNamedPlugin() when the plugin is instantiated.

Parameters:
name - -- name used to select this class.


Copyright © 2010 DuraSpace. All Rights Reserved.