void processAddOnChanges(Window caller,AddOnDependencyChecker.AddOnChangesResult changes){
  if (addonsDialog != null) {
    addonsDialog.setDownloadingUpdates();
  }
  if (getView() != null) {
    Set<AddOn> addOns=new HashSet<>(changes.getUninstalls());
    addOns.addAll(changes.getOldVersions());
    Set<Extension> extensions=new HashSet<>();
    extensions.addAll(changes.getUnloadExtensions());
    extensions.addAll(changes.getSoftUnloadExtensions());
    if (!warnUnsavedResourcesOrActiveActions(caller,addOns,extensions,true)) {
      return;
    }
  }
  uninstallAddOns(caller,changes.getUninstalls(),false);
  Set<AddOn> allAddons=new HashSet<>(changes.getNewVersions());
  allAddons.addAll(changes.getInstalls());
  for (  AddOn addOn : allAddons) {
    if (addonsDialog != null) {
      addonsDialog.notifyAddOnDownloading(addOn);
    }
    downloadAddOn(addOn);
  }
}

void processAddOnChanges ( Window caller , AddOnDependencyChecker . AddOnChangesResult changes ) { if ( addonsDialog != null ) { addonsDialog . setDownloadingUpdates ( ) ; } if ( getView ( ) != null ) { Set < AddOn > addOns = new HashSet < > ( changes . getUninstalls ( ) ) ; addOns . addAll ( changes . getOldVersions ( ) ) ; Set < Extension > extensions = new HashSet < > ( ) ; extensions . addAll ( changes . getUnloadExtensions ( ) ) ; extensions . addAll ( changes . getSoftUnloadExtensions ( ) ) ; if ( ! warnUnsavedResourcesOrActiveActions ( caller , addOns , extensions , true ) ) { return ; } } uninstallAddOns ( caller , changes . getUninstalls ( ) , false ) ; Set < AddOn > allAddons = new HashSet < > ( changes . getNewVersions ( ) ) ; allAddons . addAll ( changes . getInstalls ( ) ) ; for ( AddOn addOn : allAddons ) { if ( addonsDialog != null ) { addonsDialog . notifyAddOnDownloading ( addOn ) ; } downloadAddOn ( addOn ) ; } }
processes the given add - on changes .
