Class UpdateOperation

  • All Implemented Interfaces:
    IProfileChangeJob

    public class UpdateOperation
    extends ProfileChangeOperation
    An UpdateOperation describes an operation that updates IInstallableUnits in a profile. The following snippet shows how one might use an UpdateOperation to check for updates to the profile and then install them in the background.
     UpdateOperation op = new UpdateOperation(session);
     IStatus result = op.resolveModal(monitor);
     if (result.isOK()) {
       op.getProvisioningJob(monitor).schedule();
     }
     
    The life cycle of an UpdateOperation is different than that of the other operations. Since assembling the list of possible updates may be costly, clients should not have to create a new update operation if the desired updates to be applied need to change. In this case, the client can set a new set of chosen updates on the update operation and resolve again.
     UpdateOperation op = new UpdateOperation(session);
     IStatus result = op.resolveModal(monitor);
     if (result.isOK()) {
       op.getProvisioningJob(monitor).schedule();
     } else if (result.getSeverity() == IStatus.ERROR) {
       Update [] chosenUpdates = letUserPickFrom(op.getPossibleUpdates());
       op.setSelectedUpdates(chosenUpdates);
       IStatus result = op.resolveModal(monitor);
     }
     
    Since:
    2.0
    Restriction:
    This class is not intended to be subclassed by clients.
    • Field Detail

      • STATUS_NOTHING_TO_UPDATE

        public static final int STATUS_NOTHING_TO_UPDATE
        A status code used to indicate that there were no updates found when looking for updates.
        See Also:
        Constant Field Values
    • Constructor Detail

      • UpdateOperation

        public UpdateOperation​(ProvisioningSession session,
                               Collection<IInstallableUnit> toBeUpdated)
        Create an update operation on the specified provisioning session that updates the specified IInstallableUnits. Unless otherwise specified, the operation will be associated with the currently running profile.
        Parameters:
        session - the session to use for obtaining provisioning services
        toBeUpdated - the IInstallableUnits to be updated.
      • UpdateOperation

        public UpdateOperation​(ProvisioningSession session)
        Create an update operation that will update all of the user-visible installable units in the profile (the profile roots).
        Parameters:
        session - the session providing the provisioning services
    • Method Detail

      • setSelectedUpdates

        public void setSelectedUpdates​(Update[] defaultUpdates)
        Set the updates that should be selected from the set of available updates. If the selected updates are not specified, then the latest available update for each IInstallableUnit with updates will be chosen.
        Parameters:
        defaultUpdates - the updates that should be chosen from all of the available updates.
      • getSelectedUpdates

        public Update[] getSelectedUpdates()
        Get the updates that have been selected from the set of available updates. If none have been specified by the client, then the latest available update for each IInstallableUnit with updates will be chosen.
        Returns:
        the updates that should be chosen from all of the available updates
      • getPossibleUpdates

        public Update[] getPossibleUpdates()
        Get the list of all possible updates. This list may include multiple versions of updates for the same IInstallableUnit, as well as patches to the IInstallableUnit.
        Returns:
        an array of all possible updates
      • computeProfileChangeRequest

        protected void computeProfileChangeRequest​(MultiStatus status,
                                                   IProgressMonitor monitor)
        Description copied from class: ProfileChangeOperation
        Compute the profile change request for this operation, adding any relevant intermediate status to the supplied status.
        Specified by:
        computeProfileChangeRequest in class ProfileChangeOperation
        Parameters:
        status - a multi-status to be used to add relevant status. If a profile change request cannot be computed for any reason, a status should be added to explain the problem.
        monitor - the progress monitor to use for computing the profile change request
      • hasResolved

        public boolean hasResolved()
        Description copied from class: ProfileChangeOperation
        Return a boolean indicating whether the operation has been resolved. This method should be used to determine whether a client can expect to retrieve a profile change request, provisioning plan, or resolution result. It is possible that this method return false while resolution is taking place if it is performed in the background.
        Overrides:
        hasResolved in class ProfileChangeOperation
        Returns:
        true if the operation has been resolved, false if it has not resolved.