package JSSPF;

/**
 * The abstract type which all plugins must extend. TODO: Make interface?
 */
public abstract class PluginClassBase
{
    /**
     * The constructor for a plugin should do nothing.
     */
    public PluginClassBase()
    {}

    /**
     * Allows a plugin to identify itself with a type, for categorisation.
     * @return A string other parts of the system can recognise to categorise
     * this plugin.
     */
    public abstract String getType();

    /**
     * Allows a plugin to identify itself with a name, for identification.
     * @return A string users can recognise to identify (instances of) this
     * plugin.
     */
    public abstract String getName();
}