Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rapicault2011-05-10 03:11:23 +0000
committerPascal Rapicault2011-05-10 03:11:23 +0000
commit3a7af79bbba8f1bd615d19ac5dafd0113060eedc (patch)
tree2c7326ee8b909a028044e66131a9d08dcb975017 /bundles/org.eclipse.equinox.p2.metadata/src
parent3786008daa5ea4c15a0c6d3966a835895751ccb6 (diff)
downloadrt.equinox.p2-3a7af79bbba8f1bd615d19ac5dafd0113060eedc.tar.gz
rt.equinox.p2-3a7af79bbba8f1bd615d19ac5dafd0113060eedc.tar.xz
rt.equinox.p2-3a7af79bbba8f1bd615d19ac5dafd0113060eedc.zip
Bug 327798 - ResolvedInstallableUnits are not 'member providers'
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.metadata/src')
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ResolvedInstallableUnit.java43
1 files changed, 42 insertions, 1 deletions
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ResolvedInstallableUnit.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ResolvedInstallableUnit.java
index e39eb5dcc..f9d98b4f9 100644
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ResolvedInstallableUnit.java
+++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/ResolvedInstallableUnit.java
@@ -15,13 +15,17 @@ import java.util.*;
import org.eclipse.equinox.internal.p2.core.helpers.CollectionUtils;
import org.eclipse.equinox.p2.metadata.*;
import org.eclipse.equinox.p2.metadata.expression.IMatchExpression;
+import org.eclipse.equinox.p2.metadata.expression.IMemberProvider;
-public class ResolvedInstallableUnit implements IInstallableUnit {
+public class ResolvedInstallableUnit implements IInstallableUnit, IMemberProvider {
private static IInstallableUnitFragment[] NO_IU = new IInstallableUnitFragment[0];
private final IInstallableUnitFragment[] fragments;
protected final IInstallableUnit original;
+ public static final String MEMBER_ORIGINAL = "original"; //$NON-NLS-1$
+ public static final String MEMBER_FRAGMENTS = "fragments"; //$NON-NLS-1$
+
public ResolvedInstallableUnit(IInstallableUnit resolved) {
this(resolved, null);
}
@@ -188,4 +192,41 @@ public class ResolvedInstallableUnit implements IInstallableUnit {
return candidate.isMatch(this);
}
+ /* (non-Javadoc)
+ * @see org.eclipse.equinox.p2.metadata.expression.IMemberProvider#getMember(java.lang.String)
+ */
+ public Object getMember(String memberName) {
+ if (MEMBER_FRAGMENTS == memberName)
+ return fragments;
+ if (MEMBER_ORIGINAL == memberName)
+ return original;
+ if (InstallableUnit.MEMBER_PROVIDED_CAPABILITIES == memberName)
+ return getProvidedCapabilities();
+ if (InstallableUnit.MEMBER_ID == memberName)
+ return getId();
+ if (InstallableUnit.MEMBER_VERSION == memberName)
+ return getVersion();
+ if (InstallableUnit.MEMBER_PROPERTIES == memberName)
+ return getProperties();
+ if (InstallableUnit.MEMBER_FILTER == memberName)
+ return getFilter();
+ if (InstallableUnit.MEMBER_ARTIFACTS == memberName)
+ return getArtifacts();
+ if (InstallableUnit.MEMBER_REQUIREMENTS == memberName)
+ return getRequirements();
+ if (InstallableUnit.MEMBER_LICENSES == memberName)
+ return getLicenses();
+ if (InstallableUnit.MEMBER_COPYRIGHT == memberName)
+ return getCopyright();
+ if (InstallableUnit.MEMBER_TOUCHPOINT_DATA == memberName)
+ return getTouchpointData();
+ if (InstallableUnit.MEMBER_TOUCHPOINT_TYPE == memberName)
+ return getTouchpointType();
+ if (InstallableUnit.MEMBER_UPDATE_DESCRIPTOR == memberName)
+ return getUpdateDescriptor();
+ if (InstallableUnit.MEMBER_SINGLETON == memberName)
+ return Boolean.valueOf(isSingleton());
+ throw new IllegalArgumentException("No such member: " + memberName); //$NON-NLS-1$
+ }
+
}

Back to the top