1 /*******************************************************************************
2 * Copyright (c) 2008, 2010 EclipseSource and others.
3  *
4  * This
5 * program and the accompanying materials are made available under the terms of
6 * the Eclipse Public License 2.0 which accompanies this distribution, and is
7 * available at
8  * https://www.eclipse.org/legal/epl-2.0/
9  *
10  * SPDX-License-Identifier: EPL-2.0
11 *
12 * Contributors:
13 *   EclipseSource - initial API and implementation
14 ******************************************************************************/
15 package org.eclipse.equinox.internal.p2.metadata;
16 
17 import org.eclipse.equinox.p2.metadata.*;
18 
19 /**
20  * A required capability represents some external constraint on an {@link IInstallableUnit}.
21  * Each capability represents something an {@link IInstallableUnit} needs that
22  * it expects to be provided by another {@link IInstallableUnit}. Capabilities are
23  * entirely generic, and are intended to be capable of representing anything that
24  * an {@link IInstallableUnit} may need either at install time, or at runtime.
25  * <p>
26  * Capabilities are segmented into namespaces.  Anyone can introduce new
27  * capability namespaces. Some well-known namespaces are introduced directly
28  * by the provisioning framework.
29  *
30  * @see IInstallableUnit#NAMESPACE_IU_ID
31  *
32  * @noimplement This interface is not intended to be implemented by clients.
33  * @noextend This interface is not intended to be extended by clients.
34  */
35 public interface IRequiredCapability extends IRequirement {
36 
37 	//	public String getFilter();
38 
getName()39 	public String getName();
40 
getNamespace()41 	public String getNamespace();
42 
43 	/**
44 	 * Returns the range of versions that satisfy this required capability. Returns
45 	 * an empty version range ({@link VersionRange#emptyRange} if any version
46 	 * will satisfy the capability.
47 	 * @return the range of versions that satisfy this required capability.
48 	 */
getRange()49 	public VersionRange getRange();
50 }