All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.equinox.app.IApplicationContext Maven / Gradle / Ivy

There is a newer version: 1.9.3.RC1
Show newest version
/*******************************************************************************
 * Copyright (c) 2005, 2010 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

package org.eclipse.equinox.app;

import java.util.Map;
import org.osgi.framework.Bundle;
import org.osgi.service.application.ApplicationDescriptor;

/**
 * The context used to start an application.
 * 

* This interface is not intended to be implemented by clients. *

* * @since 1.0 * @noextend This interface is not intended to be extended by clients. * @noimplement This interface is not intended to be implemented by clients. */ public interface IApplicationContext { /** * A system property that may be set by an application to specify exit data for * the application. The value of the property must be a String. *

* Typically applications do not need to set this property. If an error is * detected while launching or running an application then the launcher will set * this property automatically in order to display a message to the end user. An * application may set this property for the following reasons: *

*
    *
  • To provide the command line arguments to relaunch the eclipse platform. * See {@link IApplication#EXIT_RELAUNCH}
  • *
  • To provide an error message that will be displayed to the end user. This * will cause an error dialog to be displayed to the user, this option should * not be used by headless applications.
  • *
  • To suppress all error dialogs displayed by the launcher this property can * be set to the empty String. This is useful for headless * applications where error dialogs must never be displayed.
  • *
* * @since 1.3 */ public static final String EXIT_DATA_PROPERTY = "eclipse.exitdata"; //$NON-NLS-1$ /** * A key used to store arguments for the application. The content of this * argument is unchecked and should conform to the expectations of the * application being invoked. Typically this is a String array. *

* * If the map used to launch an application * {@link ApplicationDescriptor#launch(Map)} does not contain a value for this * key then command line arguments used to launch the platform are set in the * arguments of the application context. */ public static final String APPLICATION_ARGS = "application.args"; //$NON-NLS-1$ /** * Exit object that indicates the application result will be delivered * asynchronously. This object must be returned by the method * {@link IApplication#start(IApplicationContext)} for applications which * deliver a result asynchronously with the method * {@link IApplicationContext#setResult(Object, IApplication)}. * * @since 1.3 */ public static final Object EXIT_ASYNC_RESULT = new Object(); /** * The arguments used for the application. The arguments from * {@link ApplicationDescriptor#launch(Map)} are used as the arguments for this * context when an application is launched. * * @return a map of application arguments. */ public Map getArguments(); /** * This method should be called once the application is completely initialized * and running. This method will perform certain operations that are needed once * an application is running. One example is bringing down a splash screen if it * exists. */ public void applicationRunning(); /** * Returns the application associated with this application context. This * information is used to guide the runtime as to what application extension to * create and execute. * * @return this product's application or null if none */ public String getBrandingApplication(); /** * Returns the name of the product associated with this application context. The * name is typically used in the title bar of UI windows. * * @return the name of the product or null if none */ public String getBrandingName(); /** * Returns the text description of the product associated with this application * context. * * @return the description of the product or null if none */ public String getBrandingDescription(); /** * Returns the unique product id of the product associated with this application * context. * * @return the id of the product */ public String getBrandingId(); /** * Returns the property with the given key of the product associated with this * application context. null is returned if there is no such * key/value pair. * * @param key the name of the property to return * @return the value associated with the given key or null if none */ public String getBrandingProperty(String key); /** * Returns the bundle which is responsible for the definition of the product * associated with this application context. Typically this is used as a base * for searching for images and other files that are needed in presenting the * product. * * @return the bundle which defines the product or null if none */ public Bundle getBrandingBundle(); /** * Sets the result of the application asynchronously. This method can only be * used after the application's {@link IApplication#start(IApplicationContext) * start} method has returned the value of * {@link IApplicationContext#EXIT_ASYNC_RESULT}. *

* The specified application must be the same application instance which is * associated with this application context. In other word the application * instance for which {@link IApplication#start(IApplicationContext)} was called * with this application context; otherwise an * IllegalArgumentException is thrown. *

* * @param result the result value for the application. May be null. * @param application the application instance associated with this application * context * @throws IllegalStateException if * {@link IApplicationContext#EXIT_ASYNC_RESULT} * was not returned by the application's * {@link IApplication#start(IApplicationContext) * start} method or if the result has already * been set for this application context. * @throws IllegalArgumentException if the specified application is not the same * application instance associated with this * application context. * * * @since 1.3 */ public void setResult(Object result, IApplication application); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy