| /******************************************************************************* |
| * 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; |
| import org.eclipse.update.core.IFeatureReference; |
| import org.eclipse.update.core.ISite; |
| import org.eclipse.update.core.IVerificationListener; |
| |
| /** |
| * Configured Site. |
| * Represents an installation site "filtered" by configuration information. |
| * Configured site is the target of the feature update operations (install |
| * feature, remove feature, configure feature, unconfigure feature). |
| * <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 IConfiguredSite extends IAdaptable { |
| |
| /** |
| * Returns the underlying "unfiltered" site. |
| * |
| * @return the underlying site |
| * @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 ISite getSite(); |
| |
| /** |
| * Indicates whether updates can be applied to the site. |
| * |
| * <code>IStatus.isOk()</code> return <code>true</code> if |
| * the site can be updated, <code>false</code> otherwise. |
| * |
| * If updates cannot be aplied, the status contains the error message, and |
| * the possible exception. |
| * |
| * @see IStatus |
| * @return an IStatus |
| * @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 verifyUpdatableStatus(); |
| |
| /** |
| * Indicates whether updates can be applied to the site. |
| * |
| * A configuration site is tagged a non-updatable by reading |
| * the platform configuration for this site. |
| * |
| * @return <code>true</code> if the site can be updated, |
| * <code>false</code> otherwise |
| * @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 boolean isUpdatable(); |
| |
| /** |
| * Install the specified feature on this site. |
| * |
| * @param feature feature to install |
| * @param verificationListener verification listener, or <code>null</code> |
| * @param monitor progress monitor, or <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 IFeatureReference install(IFeature feature, IVerificationListener verificationListener, IProgressMonitor monitor) throws CoreException; |
| |
| /** |
| * Install the specified feature on this site. |
| * Only the specified optional features will be installed |
| * |
| * @param feature feature to install |
| * @param optionalFeatures optional features to install |
| * @param verificationListener verification listener, or <code>null</code> |
| * @param monitor progress monitor, or <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 IFeatureReference install(IFeature feature, IFeatureReference[] optionalFeatures, IVerificationListener verificationListener, IProgressMonitor monitor) throws CoreException; |
| |
| |
| /** |
| * Remove (uninstall) the specified feature from this site |
| * |
| * @param feature feature to remove |
| * @param monitor progress monitor, or <code>null</code> |
| * @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 remove(IFeature feature, IProgressMonitor monitor) throws CoreException; |
| |
| /** |
| * Indicates if the specified feature is "broken". A feature is considered |
| * to be broken in the context of this site, if some of the plug-ins |
| * referenced by the feature are not installed on this site. |
| * |
| * The status code is <code>IStatus.ERROR</code> if the feature is considered |
| * broken. The Status may contain the reason why the feature is broken. |
| * The status code is <code>IStatus.OK</code> if the feature is not considered |
| * broken. |
| * |
| * @param feature the feature |
| * @return the status for this feature on this configured site |
| * @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 getBrokenStatus(IFeature feature); |
| |
| /** |
| * Indicates if the specified feature is configured on this site. |
| * |
| * @param feature the feature |
| * @return <code>true</code> if the feature is configured, |
| * <code>false</code> otherwise |
| * @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 boolean isConfigured(IFeature feature); |
| |
| /** |
| * Configure the specified feature on this site. The configured |
| * feature will be included on next startup. |
| * |
| * @param feature the feature |
| * @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 configure(IFeature feature) throws CoreException; |
| |
| /** |
| * Unconfigure the specified feature from this site. The unconfigured |
| * feature will be omitted on the next startup. |
| * |
| * @param feature the feature |
| * @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 boolean unconfigure(IFeature feature) throws CoreException; |
| |
| /** |
| * Return references to features configured on this site. |
| * |
| * @return an array of feature references, 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 IFeatureReference[] getConfiguredFeatures(); |
| |
| /** |
| * Return all features installed on this site (configured as well |
| * as unconfigured). Note, that if the site requires reconciliation, |
| * the result may not match the result of the corresponding method |
| * on the underlying site. |
| * |
| * @see ISite#getFeatureReferences() |
| * @return an array of site feature references, 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 IFeatureReference[] getFeatureReferences(); |
| |
| /** |
| * Returns the install configuration object this site is part of. |
| * |
| * @return install configuration object |
| * @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 getInstallConfiguration(); |
| |
| /** |
| * Adds a change listener to the configured site. |
| * |
| * @param listener the listener to add |
| * @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 addConfiguredSiteChangedListener(IConfiguredSiteChangedListener listener); |
| |
| /** |
| * Removes a change listener from the configured site. |
| * |
| * @param listener the listener 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 removeConfiguredSiteChangedListener(IConfiguredSiteChangedListener listener); |
| |
| /** |
| * Indicates if the site is an extension site. |
| * |
| * @return <code>true</code> if the site is an extension site, |
| * <code>false</code> otherwise |
| * @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 boolean isExtensionSite(); |
| |
| /** |
| * Indicates if the site is a product site. |
| * |
| * @return <code>true</code> if the site is a product site, |
| * <code>false</code> otherwise |
| * @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 boolean isProductSite(); |
| |
| /** |
| * Indicates if the site is a private site. |
| * This does not check if this private site belongs to the |
| * product that is running. |
| * |
| * @return <code>true</code> if the site is a private site, |
| * <code>false</code> otherwise |
| * @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> |
| * @deprecated private site are considered the same as extension site (3.0) |
| */ |
| public boolean isPrivateSite(); |
| |
| /** |
| * Indicates if the site has been linked by a native |
| * installer. |
| * |
| * @return <code>true</code> if the site is a natively linked site, |
| * <code>false</code> otherwise |
| * @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 boolean isNativelyLinked() throws CoreException; |
| |
| /** |
| * Sets if the site is enabled |
| * |
| * @param value <code>true</code> if the site is enable, <code>false</code> |
| * otherwise |
| * @since 2.1 |
| * <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 setEnabled(boolean value); |
| |
| /** |
| * Indicates if the site is enabled. |
| * If a site is not enable, all teh features are considered disabled. |
| * |
| * @return <code>true</code> if the site is enable, <code>false</code> |
| * otherwise |
| * @since 2.1 |
| * <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 boolean isEnabled(); |
| } |