
org.eclipse.equinox.app.IApplicationContext Maven / Gradle / Ivy
Show all versions of aspectjtools Show documentation
/*******************************************************************************
* 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);
}