## Uses of Interface
org.eclipse.equinox.p2.metadata.IInstallableUnit

Packages that use IInstallableUnit
org.eclipse.equinox.p2.engine: Provides support for interacting with the p2 provisioning engine Package Specification This package specifies API for interacting with the p2 provisioning engine.
org.eclipse.equinox.p2.engine.query: Provides queries specific to profiles Package Specification This package specifies API for querying the profile.
org.eclipse.equinox.p2.metadata: Defines the metadata being handled by p2.
org.eclipse.equinox.p2.operations: Describes high level provisioning operations that can be resolved and performed either modally or in the background.
org.eclipse.equinox.p2.planner: Provides core support for interacting with a dependency resolution mechanism.
org.eclipse.equinox.p2.query: Provides common classes for the query mechanism.
org.eclipse.equinox.p2.repository.metadata: Defines metadata repository.
org.eclipse.equinox.p2.repository.metadata.spi: Defines SPI for registering new implementations of metadata repositories.
org.eclipse.equinox.p2.touchpoint.eclipse.query: Provides query utilities specific to provisioning of OSGi bundles Package Specification This package specifies API for querying and manipulating provisioning metadata that is specific to OSGi bundles or Eclipse-specific constructs such as features.
org.eclipse.equinox.p2.ui: Provides provisioning user interface classes that can be used for assembling a provisioning UI.

### Uses of IInstallableUnit in org.eclipse.equinox.p2.engine

Methods in org.eclipse.equinox.p2.engine that return types with arguments of type IInstallableUnit
`IQueryResult<IInstallableUnit>` IProfile.`available(IQuery<IInstallableUnit> query, IProgressMonitor monitor)` Returns the installable units in this profile that match the given query.
`IQueryable<IInstallableUnit>` IProvisioningPlan.`getAdditions()` Returns the proposed set of installable units to be added to the profile.
`List<IInstallableUnit>` ProvisioningContext.`getExtraInstallableUnits()` Returns the list of additional installable units that should be considered as available for installation by the planner.
`IQueryable<IInstallableUnit>` IProvisioningPlan.`getFutureState()` Returns the set of IUs that will constitute the profile if the plan is executed successfully.
`IQueryable<IInstallableUnit>` ProvisioningContext.`getMetadata(IProgressMonitor monitor)` Returns a queryable that can be used to obtain any metadata (installable units) that are needed for the provisioning operation.
`IQueryable<IInstallableUnit>` IProvisioningPlan.`getRemovals()` Returns the proposed set of installable units to be removed from this profile.

Methods in org.eclipse.equinox.p2.engine with parameters of type IInstallableUnit
`void` IProvisioningPlan.`addInstallableUnit(IInstallableUnit iu)` Adds an installable unit to the plan.
`Map<String,String>` IProfile.`getInstallableUnitProperties(IInstallableUnit iu)` Returns an unmodifiable map of all profile properties associated with the given installable unit in this profile.
`String` IProfile.`getInstallableUnitProperty(IInstallableUnit iu, String key)` Returns the profile property associated with the given installable unit.
`void` IProvisioningPlan.`removeInstallableUnit(IInstallableUnit iu)` Removes an installable unit from the plan.
`void` IProvisioningPlan.`setInstallableUnitProfileProperty(IInstallableUnit iu, String name, String value)` Adds a profile property corresponding to the given installable unit to the plan.
`void` IProvisioningPlan.`updateInstallableUnit(IInstallableUnit from, IInstallableUnit to)` Adds an instruction to replace one installable unit in the profile with another.

Method parameters in org.eclipse.equinox.p2.engine with type arguments of type IInstallableUnit
`IQueryResult<IInstallableUnit>` IProfile.`available(IQuery<IInstallableUnit> query, IProgressMonitor monitor)` Returns the installable units in this profile that match the given query.
`void` ProvisioningContext.`setExtraInstallableUnits(List<IInstallableUnit> extraIUs)` Sets the list of additional installable units that should be considered as available for installation by the planner.
`void` IProvisioningPlan.`setFuturePlan(IQueryable<IInstallableUnit> futureState)` Sets the value that is returned by the method getFutureState.

### Uses of IInstallableUnit in org.eclipse.equinox.p2.engine.query

Methods in org.eclipse.equinox.p2.engine.query with parameters of type IInstallableUnit
`static boolean` UserVisibleRootQuery.`isUserVisible(IInstallableUnit iu, IProfile profile)` Test if the `IInstallableUnit`, in the context of a `IProfile` is visible to the user

### Uses of IInstallableUnit in org.eclipse.equinox.p2.metadata

Subinterfaces of IInstallableUnit in org.eclipse.equinox.p2.metadata
`interface` `IInstallableUnitFragment` Represents a fragment that contributes additional requirements, capabilities, and other properties to some host installable unit.
`interface` `IInstallableUnitPatch` An installable unit patch is an installable unit that alters the required capabilities of another installable unit.

Methods in org.eclipse.equinox.p2.metadata that return IInstallableUnit
`static IInstallableUnit` MetadataFactory.`createInstallableUnit(MetadataFactory.InstallableUnitDescription description)` Returns an `IInstallableUnit` based on the given description.
`static IInstallableUnit` MetadataFactory.`createResolvedInstallableUnit(IInstallableUnit unit, IInstallableUnitFragment[] fragments)` Returns an `IInstallableUnit` that represents the given unit bound to the given fragments.
`IInstallableUnit` IInstallableUnit.`unresolved()` Returns the unresolved equivalent of this installable unit.

Methods in org.eclipse.equinox.p2.metadata that return types with arguments of type IInstallableUnit
`IMatchExpression<IInstallableUnit>` IInstallableUnit.`getFilter()` Returns the filter on this installable unit.
`IMatchExpression<IInstallableUnit>` IRequirement.`getFilter()`
`Collection<IMatchExpression<IInstallableUnit>>` IUpdateDescriptor.`getIUsBeingUpdated()` Returns an expression matching all installable units that will be updated by the unit with this update descriptor.
`IMatchExpression<IInstallableUnit>` IRequirement.`getMatches()` Returns a boolean match expression that will return true for any `IInstallableUnit` that matches the requirement.

Methods in org.eclipse.equinox.p2.metadata with parameters of type IInstallableUnit
`static IInstallableUnit` MetadataFactory.`createResolvedInstallableUnit(IInstallableUnit unit, IInstallableUnitFragment[] fragments)` Returns an `IInstallableUnit` that represents the given unit bound to the given fragments.
`boolean` IRequirement.`isMatch(IInstallableUnit iu)` Returns whether the provided capabilities of the given installable unit satisfy this requirement.
`boolean` IUpdateDescriptor.`isUpdateOf(IInstallableUnit iu)` Helper method indicating whether or not an installable unit is an update for the installable unit passed

Method parameters in org.eclipse.equinox.p2.metadata with type arguments of type IInstallableUnit
`static IRequirement` MetadataFactory.`createRequirement(IMatchExpression<IInstallableUnit> requirement, IMatchExpression<IInstallableUnit> filter, int minCard, int maxCard, boolean greedy)` Create and return a new requirement (`IRequirement`) with the specified values.
`static IRequirement` MetadataFactory.`createRequirement(IMatchExpression<IInstallableUnit> requirement, IMatchExpression<IInstallableUnit> filter, int minCard, int maxCard, boolean greedy)` Create and return a new requirement (`IRequirement`) with the specified values.
`static IRequirement` MetadataFactory.`createRequirement(IMatchExpression<IInstallableUnit> requirement, IMatchExpression<IInstallableUnit> filter, int minCard, int maxCard, boolean greedy, String description)` Create and return a new requirement (`IRequirement`) with the specified values.
`static IRequirement` MetadataFactory.`createRequirement(IMatchExpression<IInstallableUnit> requirement, IMatchExpression<IInstallableUnit> filter, int minCard, int maxCard, boolean greedy, String description)` Create and return a new requirement (`IRequirement`) with the specified values.
`static IRequirement` MetadataFactory.`createRequirement(String namespace, String name, VersionRange range, IMatchExpression<IInstallableUnit> filter, boolean optional, boolean multiple)` Returns a `IRequirement` with the given values.
`static IRequirement` MetadataFactory.`createRequirement(String namespace, String name, VersionRange range, IMatchExpression<IInstallableUnit> filter, int minCard, int maxCard, boolean greedy)` Create and return a new requirement (`IRequirement`) with the specified values.
`static IRequirement` MetadataFactory.`createRequirement(String namespace, String name, VersionRange range, IMatchExpression<IInstallableUnit> filter, int minCard, int maxCard, boolean greedy, String description)` Create and return a new requirement (`IRequirement`) with the specified values.
`static IUpdateDescriptor` MetadataFactory.`createUpdateDescriptor(Collection<IMatchExpression<IInstallableUnit>> descriptors, int severity, String description, URI location)`
`void` MetadataFactory.InstallableUnitDescription.`setFilter(IMatchExpression<IInstallableUnit> filter)`

### Uses of IInstallableUnit in org.eclipse.equinox.p2.operations

Fields in org.eclipse.equinox.p2.operations declared as IInstallableUnit
`IInstallableUnit` Update.`replacement`
`IInstallableUnit` Update.`toUpdate`

Fields in org.eclipse.equinox.p2.operations with type parameters of type IInstallableUnit
`protected Collection<IInstallableUnit>` InstallOperation.`toInstall`

Methods in org.eclipse.equinox.p2.operations that return IInstallableUnit
`IInstallableUnit` RemedyIUDetail.`getIu()`

Methods in org.eclipse.equinox.p2.operations that return types with arguments of type IInstallableUnit
`IQueryResult<IInstallableUnit>` OperationFactory.`listInstalledElements(boolean rootsOnly, IProgressMonitor monitor)` Returns the `IInstallableUnit`s that are installed in the running instance of Eclipse.

Methods in org.eclipse.equinox.p2.operations with parameters of type IInstallableUnit
`String` ProfileChangeOperation.`getResolutionDetails(IInstallableUnit iu)` Return a string that describes the specific resolution results related to the supplied `IInstallableUnit`.

Constructors in org.eclipse.equinox.p2.operations with parameters of type IInstallableUnit
Constructor and Description
`RemedyIUDetail(IInstallableUnit iu)`
`Update(IInstallableUnit toUpdate, IInstallableUnit replacement)` Creates a new update description.

Constructor parameters in org.eclipse.equinox.p2.operations with type arguments of type IInstallableUnit
Constructor and Description
`InstallOperation(ProvisioningSession session, Collection<IInstallableUnit> toInstall)` Create an install operation on the specified provisioning session that installs the supplied IInstallableUnits.
`SynchronizeOperation(ProvisioningSession session, Collection<IInstallableUnit> toInstall)`
`UninstallOperation(ProvisioningSession session, Collection<IInstallableUnit> toUninstall)` Create an uninstall operation on the specified provisioning session that uninstalls the specified IInstallableUnits.
`UpdateOperation(ProvisioningSession session, Collection<IInstallableUnit> toBeUpdated)` Create an update operation on the specified provisioning session that updates the specified IInstallableUnits.

### Uses of IInstallableUnit in org.eclipse.equinox.p2.planner

Methods in org.eclipse.equinox.p2.planner that return types with arguments of type IInstallableUnit
`Collection<IInstallableUnit>` IProfileChangeRequest.`getAdditions()` Provide the set of installable units that have been requested for addition
`Collection<IInstallableUnit>` IProfileChangeRequest.`getRemovals()` Provide the set of installable units that have been requested for removal
`IQueryResult<IInstallableUnit>` IPlanner.`updatesFor(IInstallableUnit iu, ProvisioningContext context, IProgressMonitor monitor)`

Methods in org.eclipse.equinox.p2.planner with parameters of type IInstallableUnit
`void` IProfileChangeRequest.`add(IInstallableUnit toInstall)` Causes the installation of the mentioned IU.
`static String` ProfileInclusionRules.`createOptionalInclusionRule(IInstallableUnit iu)` Returns an inclusion rule to optionally install the given installable unit.
`static String` ProfileInclusionRules.`createStrictInclusionRule(IInstallableUnit iu)` Returns an inclusion rule to strictly install the given installable unit.
`void` IProfileChangeRequest.`remove(IInstallableUnit toUninstall)` Requests the removal of the specified installable unit
`void` IProfileChangeRequest.`removeInstallableUnitInclusionRules(IInstallableUnit iu)` Removes all inclusion rules associated with the given installable unit
`void` IProfileChangeRequest.`removeInstallableUnitProfileProperty(IInstallableUnit iu, String key)` Remove a property with a given installable unit.
`void` IProfileChangeRequest.`setInstallableUnitInclusionRules(IInstallableUnit iu, String inclusionRule)` Associate an inclusion rule with the installable unit.
`void` IProfileChangeRequest.`setInstallableUnitProfileProperty(IInstallableUnit iu, String key, String value)` Associate a property with a given installable unit.
`IQueryResult<IInstallableUnit>` IPlanner.`updatesFor(IInstallableUnit iu, ProvisioningContext context, IProgressMonitor monitor)`

Method parameters in org.eclipse.equinox.p2.planner with type arguments of type IInstallableUnit
`void` IProfileChangeRequest.`addAll(Collection<IInstallableUnit> toInstall)` Causes the installation of all the IUs mentioned
`void` IProfileChangeRequest.`removeAll(Collection<IInstallableUnit> toUninstall)` Requests the removal of all installable units in the provided collection

### Uses of IInstallableUnit in org.eclipse.equinox.p2.query

Fields in org.eclipse.equinox.p2.query with type parameters of type IInstallableUnit
`static IQuery<IInstallableUnit>` QueryUtil.`ALL_UNITS`
`static IQuery<IInstallableUnit>` QueryUtil.`NO_UNITS`

Methods in org.eclipse.equinox.p2.query that return types with arguments of type IInstallableUnit
`static IQuery<IInstallableUnit>` QueryUtil.`createIUAnyQuery()` Returns a query that matches all `InstallableUnit` elements
`static IQuery<IInstallableUnit>` QueryUtil.`createIUCategoryMemberQuery(IInstallableUnit category)` Creates a new query that will return the members of the given `category`.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUCategoryQuery()` Creates a query matching every `IInstallableUnit` that is a category.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUGroupQuery()` Creates a query matching every `IInstallableUnit` that is a group.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUPatchQuery()` Creates an `IInstallableUnit` that will match all patches.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUProductQuery()` Creates an `IInstallableUnit` that will match all products.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUPropertyQuery(String propertyName, String propertyValue)` Creates a query that searches for `IInstallableUnit` instances that have a property whose value matches the provided value.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUQuery(IVersionedId versionedId)` Creates a query that will match any `IInstallableUnit` with the given id and version.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUQuery(String id)` Creates a query that will match any `IInstallableUnit` with the given id, regardless of version.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUQuery(String id, Version version)` Creates a query that will match any `IInstallableUnit` with the given id and version.
`static IQuery<IInstallableUnit>` QueryUtil.`createIUQuery(String id, VersionRange range)` Creates a query that will match any `IInstallableUnit` with the given id, and whose version falls in the provided range.
`static IQuery<IInstallableUnit>` QueryUtil.`createLatestIUQuery()` Creates a query that returns the latest version for each unique id of an `IVersionedId`.
`static IQuery<IInstallableUnit>` QueryUtil.`createMatchQuery(IExpression matchExpression, Object... parameters)` Creates an `IInstallableUnit` query that will iterate over all candidates and discriminate by applying the boolean `matchExpression` on each candidate.
`static IQuery<IInstallableUnit>` QueryUtil.`createMatchQuery(String matchExpression, Object... parameters)` Parses the `matchExpression` and creates an `IInstallableUnit` query that will iterate over all candidates and discriminate by applying the boolean `matchExpression` on each candidate.
`static IQuery<IInstallableUnit>` QueryUtil.`createQuery(IExpression expression, Object... parameters)` Creates an `IInstallableUnit` query based on an `expression` that uses all candidates as input.
`static IQuery<IInstallableUnit>` QueryUtil.`createQuery(String expression, Object... parameters)` Parses the `expression` and creates an `IInstallableUnit` query.

Methods in org.eclipse.equinox.p2.query with parameters of type IInstallableUnit
`static IQuery<IInstallableUnit>` QueryUtil.`createIUCategoryMemberQuery(IInstallableUnit category)` Creates a new query that will return the members of the given `category`.
`static boolean` QueryUtil.`isCategory(IInstallableUnit iu)` Test if the `IInstallableUnit` is a category.
`static boolean` QueryUtil.`isFragment(IInstallableUnit iu)` Test if the `IInstallableUnit` is a fragment.
`static boolean` QueryUtil.`isGroup(IInstallableUnit iu)` Test if the `IInstallableUnit` is a group.
`static boolean` QueryUtil.`isPatch(IInstallableUnit iu)` Test if the `IInstallableUnit` is a patch.
`static boolean` QueryUtil.`isProduct(IInstallableUnit iu)` Test if the `IInstallableUnit` is a product.

### Uses of IInstallableUnit in org.eclipse.equinox.p2.repository.metadata

Method parameters in org.eclipse.equinox.p2.repository.metadata with type arguments of type IInstallableUnit
`void` IMetadataRepository.`addInstallableUnits(Collection<IInstallableUnit> installableUnits)` Add the given installable units to this repository.
`void` IMetadataRepository.`compress(IPool<IInstallableUnit> iuPool)` Cause semantically equivalent IInstallableUnits in the receiver to be replaced with a shared object from the provided `IPool`.
`boolean` IMetadataRepository.`removeInstallableUnits(Collection<IInstallableUnit> installableUnits)` Removes all installable units in the given collection from this repository.

### Uses of IInstallableUnit in org.eclipse.equinox.p2.repository.metadata.spi

Fields in org.eclipse.equinox.p2.repository.metadata.spi declared as IInstallableUnit
`IInstallableUnit[]` AbstractMetadataRepository.RepositoryState.`Units` The persisted set of installable units of the repository.

Method parameters in org.eclipse.equinox.p2.repository.metadata.spi with type arguments of type IInstallableUnit
`void` AbstractMetadataRepository.`addInstallableUnits(Collection<IInstallableUnit> installableUnits)` Add the given installable units to this repository.
`void` AbstractMetadataRepository.`compress(IPool<IInstallableUnit> iuPool)`
`boolean` AbstractMetadataRepository.`removeInstallableUnits(Collection<IInstallableUnit> installableUnits)` Removes all installable units in the given collection from this repository.

### Uses of IInstallableUnit in org.eclipse.equinox.p2.touchpoint.eclipse.query

Methods in org.eclipse.equinox.p2.touchpoint.eclipse.query with parameters of type IInstallableUnit
`static boolean` OSGiBundleQuery.`isOSGiBundle(IInstallableUnit iu)` Test if the `IInstallableUnit` describes an OSGi bundle.

### Uses of IInstallableUnit in org.eclipse.equinox.p2.ui

Methods in org.eclipse.equinox.p2.ui that return types with arguments of type IInstallableUnit
`IQuery<IInstallableUnit>` Policy.`getVisibleAvailableIUQuery()` Return a query that can be used to obtain the IInstallableUnits that should be presented to the user from the software repositories.
`IQuery<IInstallableUnit>` Policy.`getVisibleInstalledIUQuery()` Return a query that can be used to obtain the IInstallableUnits in the profile that should be presented to the user.

Methods in org.eclipse.equinox.p2.ui with parameters of type IInstallableUnit
`void` AcceptLicensesWizardPage.`update(IInstallableUnit[] theIUs, ProfileChangeOperation operation)` Update the page for the specified IInstallableUnits and operation.
`void` AcceptLicensesWizardPage.`updateForPlan(IInstallableUnit[] theIUs, IProvisioningPlan plan)` Update the current page to show the licenses that must be approved for the selected IUs and the provisioning plan.

Method parameters in org.eclipse.equinox.p2.ui with type arguments of type IInstallableUnit
`InstallOperation` ProvisioningUI.`getInstallOperation(Collection<IInstallableUnit> iusToInstall, URI[] repositories)` Return an install operation that describes installing the specified IInstallableUnits from the provided list of repositories.
`UninstallOperation` ProvisioningUI.`getUninstallOperation(Collection<IInstallableUnit> iusToUninstall, URI[] repositories)` Return an uninstall operation that describes uninstalling the specified IInstallableUnits, using the supplied repositories to replace any metadata that must be retrieved for the uninstall.
`UpdateOperation` ProvisioningUI.`getUpdateOperation(Collection<IInstallableUnit> iusToUpdate, URI[] repositories)` Return an update operation that describes updating the specified IInstallableUnits from the provided list of repositories.
`int` ProvisioningUI.`openInstallWizard(Collection<IInstallableUnit> initialSelections, InstallOperation operation, LoadMetadataRepositoryJob job)` Open an install wizard for installing the specified IInstallableUnits
`int` ProvisioningUI.`openInstallWizard(Collection<IInstallableUnit> initialSelections, InstallOperation operation, RemediationOperation remediationOperation, LoadMetadataRepositoryJob job)` Open an install wizard for installing the specified IInstallableUnits and remediationOperation.
`int` ProvisioningUI.`openUninstallWizard(Collection<IInstallableUnit> initialSelections, UninstallOperation operation, LoadMetadataRepositoryJob job)` Open an uninstall wizard for the specified uninstall operation.
`void` Policy.`setVisibleAvailableIUQuery(IQuery<IInstallableUnit> query)` Set the query that can be used to obtain the IInstallableUnits that should be presented to the user.
`void` Policy.`setVisibleInstalledIUQuery(IQuery<IInstallableUnit> query)` Set the query that can be used to obtain the IInstallableUnits in the profile that should be presented to the user.

Constructors in org.eclipse.equinox.p2.ui with parameters of type IInstallableUnit
Constructor and Description
`AcceptLicensesWizardPage(LicenseManager manager, IInstallableUnit[] ius, ProfileChangeOperation operation)` Create a license acceptance page for showing licenses to the user.