@Override
  public final synchronized boolean isValid() {
    Boolean valid = myValid;
    if (valid == null) {
      valid = ReadAction.compute(() -> calculateIsValid());
      myValid = valid;
    }
    return valid;
  }
@Override
  public final synchronized boolean isValid()