|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.openide.util.SharedClassObject | +--org.openide.modules.ModuleInstall
Provides hooks for a custom module that may be inserted into the IDE. This interface should be implemented by the main class of a module.
Simple modules will likely not need a main class--just a few entries in the manifest file. Even modules with a main class need not do anything in it that is already covered by manifest entries; only additional special functionality need be handled here.
Specify this class in the manifest file with OpenIDE-Module-Install
.
Modules wishing to keep state associated with the installation of the module
may do so by implementing not only this class but also Externalizable
.
In this case, they are responsible for reading and writing their own state
properly (probably using ObjectOutput.writeObject(java.lang.Object)
and ObjectInput.readObject()
).
Note that state which is logically connected to the user's configuration of the module on
a possibly project-specific basis should not be stored this way, but rather
using a system option. (Even if this information is not to be displayed, it should
still be stored as hidden properties of the system option, so as to be switched properly
during project switches.)
Constructor Summary | |
ModuleInstall()
|
Method Summary | |
protected boolean |
clearSharedData()
Indicate whether the shared data of the last existing instance of this class should be cleared when that instance is finalized. |
void |
close()
Called when all modules agreed with closing and the IDE will be closed. |
boolean |
closing()
Called when the IDE is about to exit. |
void |
installed()
Called when the module is first installed into the IDE. |
void |
restored()
Called when an already-installed module is restored (at IDE startup time). |
void |
uninstalled()
Called when the module is uninstalled (from a running IDE). |
void |
updated(int release,
String specVersion)
Called when the module is loaded and the version is higher than by the previous load The default implementation calls restored(). |
void |
validate()
Called when a module is being considered for loading. |
Methods inherited from class org.openide.util.SharedClassObject |
addNotify, addPropertyChangeListener, equals, finalize, findObject, findObject, firePropertyChange, getLock, getProperty, hashCode, initialize, putProperty, putProperty, readExternal, removeNotify, removePropertyChangeListener, writeExternal, writeReplace |
Methods inherited from class java.lang.Object |
clone, getClass, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ModuleInstall()
Method Detail |
public void validate() throws IllegalStateException
installed()
, restored()
,
or updated(int, java.lang.String)
are called.) If something is critically
wrong with the module (missing ad-hoc dependency, missing
license key, etc.) then IllegalStateException
may be thrown to prevent it from being loaded (preferably
with a localized annotation). The default implementation
does nothing. The module cannot assume much about when this
method will be called; specifically it cannot rely on layers
or manifest sections to be ready, nor for the module's classloader
to exist in the system class loader (so if loading bundles, icons,
and so on, specifically pass in the class loader of the install
class rather than relying on the default modules class loader).public void installed()
Typically, would do one-off functions, and then also call restored()
.
public void restored()
public void updated(int release, String specVersion)
public void uninstalled()
public boolean closing()
true
.
The module may cancel the exit if it is not prepared to be shut down.true
if it is ok to exit the IDEpublic void close()
protected boolean clearSharedData()
SharedClassObject
SharedClassObject.finalize()
.
The default implementation returns true
.
Classes which have precious shared data may want to return false
, so that
all instances may be finalized, after which new instances will pick up the same shared variables
without requiring a recalculation.
clearSharedData
in class SharedClassObject
org.openide.util.SharedClassObject
true
if all shared data should be cleared,
false
if it should stay in memory
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |