/*
* Copyright 2009-2012 by KNURT Systeme (http://www.knurt.de)
*
* Licensed under the Creative Commons License Attribution-NonCommercial-ShareAlike 3.0 Unported;
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://creativecommons.org/licenses/by-nc-sa/3.0/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.knurt.fam.plugin;
/**
* interface for a plugin. these information are shown on the page for all
* plugins overview.
*
* @author Daniel Oltmanns
* @since 1.3.0 (11/06/2010)
*/
public interface Plugin {
/**
* return an id for this plugin.
*
* @return an id for this plugin.
*/
public int getID();
/**
* return the name of the plugin
*
* @return the name of the plugin
*/
public String getName();
/**
* return a short description of the plugin
*
* @return a short description of the plugin
*/
public String getShortDescription();
/**
* return the version of the plugin
*
* @return the version of the plugin
*/
public String getVersion();
/**
* return an image url shown in plugins overview page
*
* @return an image url shown in plugins overview page
*/
public String getImageURL();
/**
* return the url to the publisher of this plugin
*
* @return the url to the publisher of this plugin
*/
public String getPublisherURL();
/**
* return the name of the publisher of this plugin
*
* @return the name of the publisher of this plugin
*/
public String getPublisher();
/**
* return a license hint
*
* @return a license hint
*/
public String getLicenseHint();
/**
* return which version of the facility access manager is needed for this
* plugin.
*
* @return which version of the facility access manager is needed for this
* plugin.
*/
public Compatibility getCompatibilityFrom();
/**
* return which version of the facility access manager is needed for this
* plugin.
*
* @return which version of the facility access manager is needed for this
* plugin.
*/
public Compatibility getCompatibilityTo();
/**
* start the plugin. this method is called by the facility access manager
* when the plugin is loaded. typically you override a default class with
* your own class here.
*/
public void start();
/**
* stop the plugin. this method is called by the facility access manager
* when the plugin is unloaded by clicking (stop by the user). this is not
* supported by now but is for later usage. make sure, everything that
* {@link #start()} did is eliminated.
*/
public void stop();
/**
* return true, if the plugin has been started.
*
* @return true, if the plugin has been started.
*/
public boolean isActive();
/**
* return a long description of this plugin
*
* @return a long description of this plugin
*/
public String getLongDescription();
}