| /******************************************************************************* |
| * Copyright (c) 2000, 2010 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.update.configuration; |
| |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.IAdaptable; |
| import org.eclipse.core.runtime.IProgressMonitor; |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.update.core.IFeature; |
| |
| /** |
| * Local Site. |
| * Represents the local installation. It consists of the current |
| * configuration and the configuration history. A local site |
| * manages the number of configuration histories kept. It also allows |
| * specific configuration histories to be saved. |
| * <p> |
| * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| * @since 2.0 |
| * @deprecated The org.eclipse.update component has been replaced by Equinox p2. |
| * This API will be deleted in a future release. See bug 311590 for details. |
| */ |
| public interface ILocalSite extends IAdaptable { |
| |
| /** |
| * Return the current configuration. |
| * |
| * @return current configuration |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| IInstallConfiguration getCurrentConfiguration(); |
| |
| /** |
| * Return configuration history. |
| * |
| * @return an array of configurations, or an empty array. |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public IInstallConfiguration[] getConfigurationHistory(); |
| |
| /** |
| * Reverts the local site to use the specified configuration. |
| * The result of this operation is a new configuration that |
| * contains the same configured features as the specified configuration. |
| * The new configuration becomes the current configuration. |
| * |
| * @param configuration configuration state to revert to |
| * @param monitor progress monitor |
| * @param handler problem handler |
| * @exception CoreException |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public void revertTo( |
| IInstallConfiguration configuration, |
| IProgressMonitor monitor, |
| IProblemHandler handler) |
| throws CoreException; |
| |
| /** |
| * Creates a new configuration containing the same state as the |
| * specified configuration. The new configuration is not added to |
| * this lical site. |
| * |
| * @return cloned configuration |
| * @exception CoreException |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public IInstallConfiguration cloneCurrentConfiguration() throws CoreException; |
| |
| /** |
| * Adds the specified configuration to this local site. |
| * The new configuration becomes the current one. |
| * |
| * @param config the configuration |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public void addConfiguration(IInstallConfiguration config); |
| |
| /** |
| * Saves the local site state |
| * |
| * @exception CoreException |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| * @return true if a restart is needed. This return code was added in 3.0. |
| */ |
| public boolean save() throws CoreException; |
| |
| /** |
| * Indicates how many configuration histories should be maintained. |
| * Histories beyond the specified count are automatically deleted. |
| * |
| * @return number of past configurations to keep as history |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public int getMaximumHistoryCount(); |
| |
| /** |
| * Sets the number of past configurations to keep in history |
| * |
| * @param history number of configuration to keep |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public void setMaximumHistoryCount(int history); |
| |
| /** |
| * Adds a site change listener |
| * |
| * @param listener the listener |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public void addLocalSiteChangedListener(ILocalSiteChangedListener listener); |
| |
| /** |
| * Removes a site listener |
| * |
| * @param listener the listener |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public void removeLocalSiteChangedListener(ILocalSiteChangedListener listener); |
| |
| /** |
| * Save the specified configuration. Saved configurations are |
| * not deleted based on the history count. They must be explicitly |
| * removed. |
| * |
| * @param configuration the configuration to save |
| * @return the preserved configuration or <code>null</code> if the configuration to save is <code>null</code> |
| * @exception CoreException |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public IInstallConfiguration addToPreservedConfigurations(IInstallConfiguration configuration) |
| throws CoreException; |
| |
| /** |
| * Removes the specified configuration from the list of previously |
| * saved configurations. |
| * |
| * @param configuration the configuration to remove |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public void removeFromPreservedConfigurations(IInstallConfiguration configuration); |
| |
| /** |
| * Return the list of saved configurations |
| * |
| * @return an array of configurations, or an empty array. |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public IInstallConfiguration[] getPreservedConfigurations(); |
| |
| /** |
| * Indicates if the 'state' of the specified feature and its children features. |
| * |
| * A feature is considered to be 'unhappy' in the context of this site, |
| * if some of the plug-ins referenced by the feature, or any of its children, |
| * are not installed on this site. |
| * |
| * A feature is considered to be 'happy' in the context of a local site |
| * if all the plug-ins referenced by the feature, or any of its children, |
| * are installed on the site and no other version of any of the plug-ins |
| * are installed on any other site of the local site. |
| * |
| * A feature is considered to be 'ambiguous' in the context of a local site |
| * if all the plug-ins referenced by the feature, or any of its children, |
| * are installed on the site and other version of any of the plug-ins |
| * are installed on any other site of the local site. |
| * |
| * @param feature the feature |
| * @see IFeature#STATUS_HAPPY |
| * @see IFeature#STATUS_UNHAPPY |
| * @see IFeature#STATUS_AMBIGUOUS |
| * @return the state of the feature |
| * @exception CoreException |
| * @since 2.0 |
| * <p> |
| * <b>Note:</b> This method is part of an interim API that is still under development and expected to |
| * change significantly before reaching stability. It is being made available at this early stage to solicit feedback |
| * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken |
| * (repeatedly) as the API evolves. |
| * </p> |
| */ |
| public IStatus getFeatureStatus(IFeature feature) throws CoreException ; |
| |
| } |