package bluej.extensions;
import java.net.URL;
import bluej.Config;
| Defines the interface between BlueJ and an extension. All extensions must extend this class.
| A concrete extension class must also have a no-arguments constructor.
|
| @author Clive Miller, University of Kent at Canterbury, 2002
| @author Damiano Bolla, University of Kent at Canterbury, 2003,2004
|
public abstract class Extension
{
| Version number variables -
|
| Do not make them final otherwise the compiler can compile it into the extension.
| Do not make them static, to prevent an extension from messing with the value
| available to other extensions.
|
| The major version number of the Extension API.
| Provided so that extensions can check for compatibility.
|
public int VERSION_MAJOR = 2;
| The minor version number of the Extension API.
| Provided so that extensions can check for compatibility.
|
public int VERSION_MINOR = 11;
| Determine whether this extension is compatible with a particular version
| of the extensions API. This method is called before the startup() method.
| An extension can use VERSION_MAJOR and VERSION_MINOR as an aid to determine
| whether it is compatible with the current BlueJ release.
|
public abstract boolean isCompatible();
| Called when the extension can start its activity.
| This is not called on a separate thread. Extensions should return as quick as
| possible from this method after creating their own thread if necessary.
|
| @param bluej The starting point for interactions with BlueJ
|
public abstract void startup(BlueJ bluej);
| Called when the extension should tidy up and terminate.
| When BlueJ decides that this extension is no longer needed it will call this
| method before removing it from the system. Note that an extension may
| be reloaded after having been terminated.
|
| <p>Any attempt by an extension to call methods on its
| <code>BlueJ</code> object after this method has been called will
| result in an (unchecked) <code>ExtensionUnloadedException</code>
| being thrown by the <code>BlueJ</code> object.
|
public void terminate()
{
}
| Should return a name for this extension. This will be displayed in the Help->Installed Extensions
| dialog.
|
| <p>Please limit the name to between 5 and 10 characters, and bear in mind the possibility of name
| conflicts.
|
public abstract String getName();
| Should return the version of the extension.
| Please limit the string to between 5 and 10 characters.
| This will be displayed in the Help->Installed Extensions dialog
|
public abstract String getVersion();
| Should return a description of the extension's function.
| It should be a brief statement of the extension's purpose.
| This will be displayed in the Help->Installed Extensions dialog
|
public String getDescription()
{
return Config.getString("extensions.nodescription");
}
| Should return a URL where more information about the extension is available.
| This will be displayed in the Help->Installed Extensions dialog.
| If no information is available then null may be returned.
|
| <p>Ideally the information provided at the URL includes a complete manual, possible
| upgrades and configuration details.
|
public URL getURL()
{
return null;
}
}
top,
use,
map,
abstract class Extension
. isCompatible
. startup
. terminate
. getName
. getVersion
. getDescription
. getURL
54 neLoCode
+ 43 LoComm