## 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
org.eclipse.equinox.p2.engine.query: Provides queries specific to profiles
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
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​(String namespace, String propsFilter, IMatchExpression<IInstallableUnit> envFilter, int minCard, int maxCard, boolean greedy)`
`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 IRequirement` MetadataFactory.`createRequirement​(String namespace, IFilterExpression propsFilter, IMatchExpression<IInstallableUnit> envFilter, int minCard, int maxCard, boolean greedy, String description)`
`static IRequirement` MetadataFactory.`createRequirement​(IMatchExpression<IInstallableUnit> requirement, IMatchExpression<IInstallableUnit> envFilter, 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> envFilter, 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
`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
`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​(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.`createIUQuery​(IVersionedId versionedId)` Creates a query that will match any `IInstallableUnit` with the given id and version.
`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​(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.`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.`createQuery​(String expression, Object... parameters)` Parses the `expression` and creates an `IInstallableUnit` query.
`static IQuery<IInstallableUnit>` QueryUtil.`createQuery​(IExpression expression, Object... parameters)` Creates an `IInstallableUnit` query based on an `expression` that uses all candidates as input.

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, RemediationOperation remediationOperation, LoadMetadataRepositoryJob job)` Open an install wizard for installing the specified IInstallableUnits and remediationOperation.
`int` ProvisioningUI.`openInstallWizard​(Collection<IInstallableUnit> initialSelections, InstallOperation operation, LoadMetadataRepositoryJob job)` Open an install wizard for installing the specified IInstallableUnits
`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
`AcceptLicensesWizardPage​(LicenseManager manager, IInstallableUnit[] ius, ProfileChangeOperation operation)` Create a license acceptance page for showing licenses to the user.