diff options
author | Pascal Rapicault | 2011-05-10 03:11:23 +0000 |
---|---|---|
committer | Pascal Rapicault | 2011-05-10 03:11:23 +0000 |
commit | 3a7af79bbba8f1bd615d19ac5dafd0113060eedc (patch) | |
tree | 2c7326ee8b909a028044e66131a9d08dcb975017 /bundles/org.eclipse.equinox.p2.metadata/src | |
parent | 3786008daa5ea4c15a0c6d3966a835895751ccb6 (diff) | |
download | rt.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.java | 43 |
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$ + } + } |