package de.gaalop;
import java.awt.*;
/**
* This interface must be implemented by all plugins that wish to interact with the Gaalop infrastructure.
*
* Classes implementing this interface <em>MUST</em> be thread-safe.
*/
public interface Plugin {
/**
* Gets a human-readable name for this plugin. It is presented to users when they need
* to select a code parser plugin.
* @return A human readable string. Must not be null.
*/
String getName();
/**
* Gets a human-readable description of this plugins purpose and scope. This is presented
* as a longer description of a plugin to the user.
* @return A human readable string that may contain newline characters. May be null.
*/
String getDescription();
/**
* Gets an icon that can be used to represent this plugin. 16x16 Pixel icons should be used.
* @return An Icon to represent this plugin or null if the plugin has no icon.
*/
Image getIcon();
}