Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/prov/metadata/IInstallableUnit.java')
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/prov/metadata/IInstallableUnit.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/prov/metadata/IInstallableUnit.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/prov/metadata/IInstallableUnit.java
new file mode 100644
index 000000000..399747f34
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/prov/metadata/IInstallableUnit.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.equinox.prov.metadata;
+
+import org.osgi.framework.Version;
+
+public interface IInstallableUnit extends Comparable {
+
+ /**
+ * A capability namespace representing a particular kind of installable unit.
+ * For example, an InstallableUnit may specify that it provides the "group" kind
+ * capability to express that it represents a group of instalable units.
+ */
+ public static final String IU_KIND_NAMESPACE = "org.eclipse.equinox.prov.type"; //$NON-NLS-1$
+ /**
+ * A capability namespace representing a particular InstallableUnit by name.
+ * Each InstallableUnit automatically provides an instance of this namespace representing
+ * itself, and other InstallableUnits can require such a capability to state that they
+ * require a particular InstallableUnit to be present.
+ */
+ public static final String IU_NAMESPACE = "org.eclipse.equinox.prov.iunamespace"; //$NON-NLS-1$
+ /**
+ * A capability namespace representing a particular profile flavor.
+ */
+ public static final String FLAVOR_NAMESPACE = "flavor"; //$NON-NLS-1$
+ //These two constants needs to be moved somewhere more appropriate...
+ public static final String CAPABILITY_ECLIPSE_TYPES = "org.eclipse.equinox.prov.eclipsetouchpoint.types"; //$NON-NLS-1$
+ public static final String CAPABILITY_ECLIPSE_BUNDLE = "bundle"; //$NON-NLS-1$
+
+ public abstract TouchpointType getTouchpointType();
+
+ public abstract String getId();
+
+ /**
+ * Returns the filter on this installable unit. The filter is matched against
+ * the selection context of the profile the unit is installed into. An IU will not
+ * be installed if it has a filter condition that is not satisfied by the context.
+ *
+ * See Profile#getSelectionContext.
+ */
+ public abstract String getFilter();
+
+ public abstract Version getVersion();
+
+ public abstract IArtifactKey[] getArtifacts();
+
+ public abstract RequiredCapability[] getRequiredCapabilities();
+
+ // public ProvidedCapability[] getProvidedCapabilities() {
+ // return providedCapabilities;
+ // }
+ //
+ public abstract ProvidedCapability[] getProvidedCapabilities();
+
+ public abstract boolean isSingleton();
+
+ public abstract String getProperty(String key);
+
+ public abstract TouchpointData[] getTouchpointData();
+
+ public abstract boolean isFragment();
+
+ public abstract String getApplicabilityFilter();
+
+ public abstract void accept(IMetadataVisitor visitor);
+} \ No newline at end of file

Back to the top