Methods Summary |
---|
public java.lang.String | getInstallURL(javax.microedition.midlet.MIDlet midlet)Get a URL to install from the Invocation mechanism, if one
has been queued.
try {
handler = Registry.getServer(midlet.getClass().getName());
} catch (ContentHandlerException che) {
return null;
}
installInvoc = handler.getRequest(false);
if (installInvoc != null) {
String url = installInvoc.getURL();
if (url != null && url.length() > 0) {
return url;
}
}
return null;
|
public void | initCleanupMonitor(com.sun.midp.main.MIDletProxyList midletProxyList)Setup to monitor for MIDlets starting and exiting and check
for incompletely handled Invocation requests.
Cleanup only occurs within the AMS Isolate.
This method is only called from MIDletSuiteLoader in the AMS Isolate.
midletProxyList.addListener(this);
|
public void | install()Install the content handlers found and verified by preinstall.
Register any content handlers parsed from the JAD/Manifest
attributes.
if (regInstaller != null) {
regInstaller.install();
regInstaller = null; // Let GC take it.
}
|
public void | installDone(boolean success)Complete the installation of the URL provided by
{@link #getInstallURL} with the success/failure status
provided.
if (installInvoc != null) {
handler.finish(installInvoc,
success ? Invocation.OK : Invocation.CANCELLED);
installInvoc = null;
regInstaller = null; // Double-clean.
}
|
public void | midletAdded(com.sun.midp.main.MIDletProxy midlet)The ContentHandler monitor ignores MIDlet added callbacks.
The necessary initialization is done in the Isolate and
MIDletState that instantiates the MIDlet.
Called when a MIDlet is added to the list and only in the AMS
Isolate.
|
public void | midletInit(int suiteId, java.lang.String classname)Notification that a MIDlet is about to be created.
Set the cleanup flag on all invocations for the MIDlet.
InvocationStore.setCleanup(suiteId, classname, true);
|
public void | midletRemoved(com.sun.midp.main.MIDletProxy midlet)The ContentHandler monitor uses the MIDlet removed callback
to cleanup any Invocations in an incorrect state.
Called (in the AMS Isolate) when a MIDlet is removed from the list.
AppProxy.getCurrent().logInfo("midletRemoved: " +
midlet.getClassName());
// Cleanup unprocessed Invocations
RegistryImpl.cleanup(midlet.getSuiteId(), midlet.getClassName());
// Check for and execute a pending MIDlet suite
InvocationImpl.invokeNext();
|
public void | midletStartError(int externalAppId, int suiteId, java.lang.String className, int errorCode, java.lang.String errorDetails)Called when error occurred while starting a MIDlet object.
|
public void | midletUpdated(com.sun.midp.main.MIDletProxy midlet, int fieldId)The ContentHandler monitor ignores MIDlet update callbacks.
Called when the state of a MIDlet in the list is updated.
|
public void | preInstall(com.sun.midp.installer.Installer installer, com.sun.midp.installer.InstallState state, com.sun.midp.midlet.MIDletSuite msuite, java.lang.String authority)Parse the ContentHandler attributes and check for errors.
- Parse attributes into set of ContentHandlers.
- If none, return
- Check for permission to install handlers
- Check each for simple invalid arguments
- Check each for MIDlet is registered
- Check each for conflicts with other application registrations
- Find any current registrations
- Merge current dynamic current registrations into set of new
- Check and resolve any conflicts between static and curr dynamic
- Retain current set and new set for registration step.
try {
AppBundleProxy bundle =
new AppBundleProxy(installer, state, msuite, authority);
regInstaller = new RegistryInstaller();
regInstaller.preInstall(bundle);
} catch (IllegalArgumentException ill) {
throw new InvalidJadException(
InvalidJadException.INVALID_CONTENT_HANDLER,
ill.getMessage());
} catch (ContentHandlerException che) {
if (che.getErrorCode() == ContentHandlerException.AMBIGUOUS) {
throw new InvalidJadException(
InvalidJadException.CONTENT_HANDLER_CONFLICT,
che.getMessage());
} else {
throw new InvalidJadException(
InvalidJadException.INVALID_CONTENT_HANDLER,
che.getMessage());
}
} catch (ClassNotFoundException cnfe) {
throw new InvalidJadException(InvalidJadException.CORRUPT_JAR,
cnfe.getMessage());
}
|
public void | restore()The content handler registrations are restored to the previous
state.
|
public void | uninstall(int suiteId)Uninstall the Content handler specific information for
the specified suiteId.
RegistryInstaller.uninstallAll(suiteId, false);
|