protected void execute(IProgressMonitor monitor) throws CoreException {
        ElementInfo info = (ElementInfo) fElementInfoMap.get(element);
        if (info == null) return;

        doValidateState(element, computationContext);

        doUpdateStateCache(element);
        info.fIsStateValidated = true;
        fireElementStateValidationChanged(element, true);
      }
 /*
  * @see IDocumentProviderExtension#updateStateCache(Object)
  * @since 2.0
  */
 public final void updateStateCache(Object element) throws CoreException {
   ElementInfo info = (ElementInfo) fElementInfoMap.get(element);
   if (info != null) {
     boolean wasReadOnly = isReadOnly(element);
     doUpdateStateCache(element);
     if (invalidatesState(element, wasReadOnly)) {
       info.fIsStateValidated = false;
       fireElementStateValidationChanged(element, false);
     }
   }
 }