Package org.eclipse.equinox.p2.planner

## Interface IProfileChangeRequest

    public interface IProfileChangeRequest

A profile change request is a description of a set of changes that a client would like to perform on a profile. The request is provided as input to an `IPlanner`, which validates which of the requested changes can be performed, and what other changes are required in order to make the profile state consistent. It is important to note that a change request can only be submitted once to the planner. Clients should create and manipulate profile change requests via the API `IPlanner.createChangeRequest(IProfile)`.

Since:
  2.0
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `add​(IInstallableUnit toInstall)` Causes the installation of the mentioned IU.
`void` `addAll​(Collection<IInstallableUnit> toInstall)` Causes the installation of all the IUs mentioned
`void` `addExtraRequirements​(Collection<IRequirement> requirements)` Add extra requirements that must be satisfied by the planner.
`Collection<IInstallableUnit>` `getAdditions()` Provide the set of installable units that have been requested for addition
`Collection<IRequirement>` `getExtraRequirements()` Get the extra requirements that have been specified through method `addExtraRequirements(Collection)`
`Collection<IInstallableUnit>` `getRemovals()` Provide the set of installable units that have been requested for removal
`void` `remove​(IInstallableUnit toUninstall)` Requests the removal of the specified installable unit
`void` `removeAll​(Collection<IInstallableUnit> toUninstall)` Requests the removal of all installable units in the provided collection
`void` `removeInstallableUnitInclusionRules​(IInstallableUnit iu)` Removes all inclusion rules associated with the given installable unit
`void` `removeInstallableUnitProfileProperty​(IInstallableUnit iu, String key)` Remove a property with a given installable unit.
`void` `removeProfileProperty​(String key)` Remove a global property on the profile
`void` `setInstallableUnitInclusionRules​(IInstallableUnit iu, String inclusionRule)` Associate an inclusion rule with the installable unit.
`void` `setInstallableUnitProfileProperty​(IInstallableUnit iu, String key, String value)` Associate a property with a given installable unit.
`void` `setProfileProperty​(String key, String value)` Set a global property on the profile

### Method Detail

#### add

    void add​(IInstallableUnit toInstall)

Causes the installation of the mentioned IU.

Parameters:
  `toInstall` - the entity to add to the profile

#### addAll

    void addAll​(Collection<IInstallableUnit> toInstall)

Causes the installation of all the IUs mentioned

Parameters:
  `toInstall` - the installable units to be added to the profile

#### remove

    void remove​(IInstallableUnit toUninstall)

Requests the removal of the specified installable unit

Parameters:
  `toUninstall` - the installable units to be remove from the profile

#### removeAll

    void removeAll​(Collection<IInstallableUnit> toUninstall)

Requests the removal of all installable units in the provided collection

Parameters:
  `toUninstall` - the installable units to be remove from the profile

#### addExtraRequirements

    void addExtraRequirements​(Collection<IRequirement> requirements)

Add extra requirements that must be satisfied by the planner.

Parameters:
  `requirements` - the additional requirements

#### setInstallableUnitInclusionRules

    void setInstallableUnitInclusionRules​(IInstallableUnit iu,
                                          String inclusionRule)

Associate an inclusion rule with the installable unit. An inclusion rule will dictate how the installable unit is treated when its dependencies are not satisfied.

The provided inclusion rule must be one of the values specified in `ProfileInclusionRules`.

Parameters:
  `iu` - the installable unit to set an inclusion rule for
  `inclusionRule` - The inclusion rule.

#### removeInstallableUnitInclusionRules

    void removeInstallableUnitInclusionRules​(IInstallableUnit iu)

Removes all inclusion rules associated with the given installable unit

Parameters:
  `iu` - the installable unit to remove inclusion rules for

#### setProfileProperty

    void setProfileProperty​(String key,
                            String value)

Set a global property on the profile

Parameters:
  `key` - key of the property
  `value` - value of the property

#### removeProfileProperty

    void removeProfileProperty​(String key)

Remove a global property on the profile

Parameters:
  `key` - key of the property

#### setInstallableUnitProfileProperty

    void setInstallableUnitProfileProperty​(IInstallableUnit iu,
                                           String key,
                                           String value)

Associate a property with a given installable unit.

Parameters:
  `key` - key of the property
  `value` - value of the property

#### removeInstallableUnitProfileProperty

    void removeInstallableUnitProfileProperty​(IInstallableUnit iu,
                                              String key)

Remove a property with a given installable unit.

Parameters:
  `iu` - The installable until to remove a property for
  `key` - key of the property

#### getAdditions

    Collection<IInstallableUnit> getAdditions()

Provide the set of installable units that have been requested for addition

Returns:
  a collection of the installable units to add

#### getRemovals

    Collection<IInstallableUnit> getRemovals()

Provide the set of installable units that have been requested for removal

Returns:
  a collection of the installable units to remove

#### getExtraRequirements

    Collection<IRequirement> getExtraRequirements()

Get the extra requirements that have been specified through method `addExtraRequirements(Collection)`

Since:
  2.2