/**
  * DOC ggu Comment method "getResultName".
  *
  * <p>the label of result.
  *
  * @param result
  * @return
  */
 public String getResultName(UpdateResult result) {
   IProcessUpdateManagerProvider[] processProviders = reader.getProcessProviders();
   for (IProcessUpdateManagerProvider provider : processProviders) {
     String displayLabel = provider.getResultName(result);
     if (displayLabel != null) {
       return displayLabel;
     }
   }
   return null;
 }
 /**
  * DOC ggu Comment method "getDisplayImage".
  *
  * <p>mainly for label provider of update manager dialog.
  *
  * @param type
  * @return
  */
 public Object getDisplayImage(Object element, int columnIndex) {
   IProcessUpdateManagerProvider[] processProviders = reader.getProcessProviders();
   for (IProcessUpdateManagerProvider provider : processProviders) {
     Object displayImage = provider.getDisplayImage(element, columnIndex);
     if (displayImage != null) {
       return displayImage;
     }
   }
   return null;
 }
 /**
  * DOC ggu Comment method "getDisplayText".
  *
  * <p>mainly for label provider of update manager dialog.
  *
  * @param element
  * @param columnIndex
  * @return
  */
 public String getDisplayText(Object element, int columnIndex) {
   IProcessUpdateManagerProvider[] processProviders = reader.getProcessProviders();
   for (IProcessUpdateManagerProvider provider : processProviders) {
     String displayText = provider.getDisplayText(element, columnIndex);
     if (displayText != null) {
       return displayText;
     }
   }
   return null;
 }
 /**
  * DOC ggu Comment method "needRefreshRelatedViews".
  *
  * @param results
  * @return
  */
 public Set<String> needRefreshRelatedViews(List<UpdateResult> results) {
   Set<String> viewIds = new HashSet<String>();
   IProcessUpdateManagerProvider[] processProviders = reader.getProcessProviders();
   for (IProcessUpdateManagerProvider provider : processProviders) {
     Set<String> viewSet = provider.needRefreshRelatedViews(results);
     if (viewSet != null) {
       viewIds.addAll(viewSet);
     }
   }
   return viewIds;
 }
 /**
  * DOC ggu Comment method "doUpdate".
  *
  * @param monitor
  * @param result
  * @return
  */
 public boolean doUpdate(IProgressMonitor monitor, UpdateResult result) {
   boolean updated = false;
   if (result != null) {
     IProcessUpdateManagerProvider[] processProviders = reader.getProcessProviders();
     for (IProcessUpdateManagerProvider provider : processProviders) {
       if (provider.doUpdate(monitor, result)) {
         updated = true;
       }
     }
   }
   return updated;
 }
 /**
  * DOC ggu Comment method "retrieveProcessUpdateResults".
  *
  * @param process check the process to detect the different.
  * @param type
  * @return
  */
 public List<UpdateResult> retrieveProcessUpdateResults(IProcess process, IUpdateItemType type) {
   List<UpdateResult> results = new ArrayList<UpdateResult>();
   IProcessUpdateManagerProvider[] processProviders = reader.getProcessProviders();
   for (IProcessUpdateManagerProvider provider : processProviders) {
     if (provider.validate(type)) {
       List<UpdateResult> processResults = provider.retrieveUpdateResults(process);
       if (processResults != null) {
         results.addAll(processResults);
       }
     }
   }
   return results;
 }
 /**
  * DOC ggu Comment method "postUpdate".
  *
  * <p>after update, will do something.
  *
  * @param results
  */
 public void postUpdate(List<UpdateResult> results) {
   IProcessUpdateManagerProvider[] processProviders = reader.getProcessProviders();
   for (IProcessUpdateManagerProvider provider : processProviders) {
     provider.postUpdate(results);
   }
 }