/******************************************************************************* * 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.core; import org.eclipse.core.runtime.IAdaptable; /** * Plug-in dependency entry. * Describes a feature dependency on a particular plug-in. The dependency * can specify a specific plug-in version and a matching rule for * satisfying the dependency. * <p> * Clients may implement this interface. However, in most cases clients should * directly instantiate or subclass the provided implementation of this * interface. * </p> * <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> * @see org.eclipse.update.core.Import * @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 IImport extends IAdaptable, IUpdateConstants, IPlatformEnvironment { /** * The import relates to a plugin * @since 2.0.2 */ public static final int KIND_PLUGIN = 0; /** * The import relates to a feature * @since 2.0.2 */ public static final int KIND_FEATURE = 1; /** * Returns an identifier of the dependent plug-in. * * @return plug-in identifier * @since 2.0 */ public VersionedIdentifier getVersionedIdentifier(); /** * Returns the matching rule for the dependency. * * @return matching rule * @since 2.0 */ public int getRule(); /** * Returns the matching rule for the dependency identifier. * * @return matching id rule * @since 2.1 */ public int getIdRule(); /** * Returns the dependency kind * * @see #KIND_PLUGIN * @see #KIND_FEATURE * @return KIND_PLUGIN if the dependency relates to a plugin, * KIND_FEATURE if the dependency relates to a feature. */ public int getKind(); /** * Returns the patch mode. If the import is in patch mode, * the referenced feature is considered a patch target, * and the feature that owns the import is patch carrier. * Patch carrier and patched feature are linked in a * distinct way: if a patched feature is disabled, * all the patches are disabled with it. * @return true if the element represents a patch * reference, false otherwise. */ public boolean isPatch(); }