/* * @(#)XletContext.java 1.23 06/10/10 * * Copyright 1990-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. * */ package javax.microedition.xlet; import java.awt.Container; /** * An interface that provides methods allowing an Xlet to discover * information about its environment. An XletContext is passed * to an Xlet when the Xlet is initialized. It provides an Xlet with a * mechanism to retrieve properties, as well as a way to signal * internal state changes. * * @see javax.microedition.xlet.Xlet */ public interface XletContext { /** * The property key used to obtain initialization arguments for the * Xlet. The call * <code>XletContext.getXletProperty(XletContext.ARGS)</code> will * return the arguments as an array of Strings. If there are * no arguments, then an array of length 0 will be returned. * * @see #getXletProperty */ public static final String ARGS = "javax.microedition.xlet.args"; /** * * Used by an application to notify its manager that it * has entered into the * <i>Destroyed</i> state. The application manager will not * call the Xlet's <code>destroy</code> method, and all resources * held by the Xlet will be considered eligible for reclamation. * Before calling this method, * the Xlet must have performed the same operations * (clean up, releasing of resources etc.) it would have if the * <code>Xlet.destroyXlet()</code> had been called. * */ public void notifyDestroyed(); /** * Notifies the manager that the Xlet does not want to be active and has * entered the <i>Paused</i> state. Invoking this method will * have no effect if the Xlet is destroyed, or if it has not * yet been started. <p> * * If an Xlet calls <code>notifyPaused()</code>, in the * future it may receive an <i>Xlet.startXlet()</i> call to request * it to become active, or an <i>Xlet.destroyXlet()</i> call to request * it to destroy itself. * */ public void notifyPaused(); /** * Provides an Xlet with a mechanism to retrieve named * properties from the XletContext. * * @param key The name of the property. * * @return A reference to an object representing the property. * <code>null</code> is returned if no value is available for key. */ public Object getXletProperty(String key); /** * Provides the Xlet with a mechanism to indicate that it is * interested in entering the <i>Active</i> state. Calls to this * method can be used by an application manager to determine which * Xlets to move to <i>Active</i> state. * If the request is fulfilled, the application manager will * subsequently call <code>Xlet.startXlet()</code> * via a different thread than the one used to call * <code>resumeRequest()</code>. * * @see Xlet#startXlet */ public void resumeRequest(); /** * Get the parent container for an Xlet to put its AWT components in. * Xlets without a graphical representation should never call this method. * If successful, this method returns an instance of java.awt.Container that * is initially invisible, with an arbitrary size and position. * If this method is called multiple times on the same XletContext instance, * the same container will be returned each time. * The methods for setting the size and position of the xlet's parent * container shall attempt to change the shape of the container, but they may * fail silently or make platform specific approximations. To discover if * a request to change the size or position has succeeded, the Xlet should * query the container for the result. * * @return An invisible container with an arbitrary size and position. * * @exception UnavailableContainerException - If policy or screen real estate * does not permit a Container to be granted to the Xlet at this time. */ public Container getContainer() throws UnavailableContainerException; /** * Returns the base class loader of the Xlet. This class loader * will be dedicated exclusively to the xlet. The xlet's classes are * all loaded by this classloader or by a classloader that has this * classloader as its ancestor. */ public java.lang.ClassLoader getClassLoader(); }