Example #1
0
  /**
   * Run all the validators that are applicable to this resource.
   *
   * <p>If this is a manual validation both the version 1 and version 2 validators are run. If it is
   * a build validation, then only the version 2 validators are run, because the old framework
   * handles the running of the old validators.
   *
   * @param project project that is being validated
   * @param resource the resource that is being validated
   * @param kind the kind of resource delta. It will be one of the IResourceDelta constants, like
   *     IResourceDelta.CHANGED for example.
   * @param valType The type of validation request.
   * @param buildKind the kind of build that triggered this validation. See
   *     IncrementalProjectBuilder for values.
   * @param operation the operation that this validation is running under
   * @param monitor the monitor to use to report progress
   */
  public void validate(
      IProject project,
      final IResource resource,
      final int kind,
      ValType valType,
      int buildKind,
      ValOperation operation,
      final IProgressMonitor monitor) {

    MarkerManager.getDefault()
        .deleteMarkers(resource, operation.getStarted(), IResource.DEPTH_ZERO);

    IValidatorVisitor visitor =
        new IValidatorVisitor() {

          public void visit(
              Validator validator,
              IProject project,
              ValType vt,
              ValOperation operation,
              IProgressMonitor monitor) {

            Validator.V1 v1 = validator.asV1Validator();
            if (vt == ValType.Build && v1 != null) return;

            SubMonitor subMonitor = SubMonitor.convert(monitor);
            String task =
                NLS.bind(ValMessages.LogValStart, validator.getName(), resource.getName());
            subMonitor.beginTask(task, 1);

            if (project.isOpen())
              validate(validator, operation, resource, kind, subMonitor.newChild(1), null);
          }
        };
    SubMonitor sm = SubMonitor.convert(monitor, getValidators(project).length);
    accept(visitor, project, resource, valType, operation, sm);
  }
Example #2
0
public class LogHelper {

  public static final Marker MOD_MARKER = MarkerManager.getMarker(Reference.MOD_ID);
  private static Logger logger = LogManager.getLogger(Reference.MOD_ID);

  public static void log(Level level, Marker marker, Message message) {
    logger.log(level, marker, message);
  }

  public static void log(Level level, Marker marker, Object object) {
    logger.log(level, marker, object);
  }

  public static void log(Level level, Marker marker, String message) {
    logger.log(level, marker, message);
  }

  public static void log(Level level, Marker marker, String format, Object... params) {
    logger.log(level, marker, format, params);
  }

  public static void log(Level level, Message message) {
    log(level, MOD_MARKER, message);
  }

  public static void log(Level level, Object object) {
    log(level, MOD_MARKER, object);
  }

  public static void log(Level level, String message) {
    log(level, MOD_MARKER, message);
  }

  public static void log(Level level, String format, Object... params) {
    log(level, MOD_MARKER, format, params);
  }

  // ALL

  public static void all(Marker marker, Message message) {
    log(Level.ALL, marker, message);
  }

  public static void all(Marker marker, Object object) {
    log(Level.ALL, marker, object);
  }

  public static void all(Marker marker, String message) {
    log(Level.ALL, marker, message);
  }

  public static void all(Marker marker, String format, Object... params) {
    log(Level.ALL, marker, format, params);
  }

  public static void all(Message message) {
    all(MOD_MARKER, message);
  }

  public static void all(Object object) {
    all(MOD_MARKER, object);
  }

  public static void all(String message) {
    all(MOD_MARKER, message);
  }

  public static void all(String format, Object... pararms) {
    all(MOD_MARKER, format, pararms);
  }

  // DEBUG

  public static void debug(Marker marker, Message message) {
    log(Level.DEBUG, marker, message);
  }

  public static void debug(Marker marker, Object object) {
    log(Level.DEBUG, marker, object);
  }

  public static void debug(Marker marker, String message) {
    log(Level.DEBUG, marker, message);
  }

  public static void debug(Marker marker, String format, Object... params) {
    log(Level.DEBUG, marker, format, params);
  }

  public static void debug(Message message) {
    debug(MOD_MARKER, message);
  }

  public static void debug(Object object) {
    debug(MOD_MARKER, object);
  }

  public static void debug(String message) {
    debug(MOD_MARKER, message);
  }

  public static void debug(String format, Object... params) {
    debug(MOD_MARKER, format, params);
  }

  // ERROR

  public static void error(Marker marker, Message message) {
    log(Level.ERROR, marker, message);
  }

  public static void error(Marker marker, Object object) {
    log(Level.ERROR, marker, object);
  }

  public static void error(Marker marker, String message) {
    log(Level.ERROR, marker, message);
  }

  public static void error(Marker marker, String format, Object... params) {
    log(Level.ERROR, marker, format, params);
  }

  public static void error(Message message) {
    error(MOD_MARKER, message);
  }

  public static void error(Object object) {
    error(MOD_MARKER, object);
  }

  public static void error(String message) {
    error(MOD_MARKER, message);
  }

  public static void error(String format, Object... params) {
    error(MOD_MARKER, format, params);
  }

  // FATAL

  public static void fatal(Marker marker, Message message) {
    log(Level.FATAL, marker, message);
  }

  public static void fatal(Marker marker, Object object) {
    log(Level.FATAL, marker, object);
  }

  public static void fatal(Marker marker, String message) {
    log(Level.FATAL, marker, message);
  }

  public static void fatal(Marker marker, String format, Object... params) {
    log(Level.FATAL, marker, format, params);
  }

  public static void fatal(Message message) {
    fatal(MOD_MARKER, message);
  }

  public static void fatal(Object object) {
    fatal(MOD_MARKER, object);
  }

  public static void fatal(String message) {
    fatal(MOD_MARKER, message);
  }

  public static void fatal(String format, Object... params) {
    fatal(MOD_MARKER, format, params);
  }

  // INFO

  public static void info(Marker marker, Message message) {
    log(Level.INFO, marker, message);
  }

  public static void info(Marker marker, Object object) {
    log(Level.INFO, marker, object);
  }

  public static void info(Marker marker, String message) {
    log(Level.INFO, marker, message);
  }

  public static void info(Marker marker, String format, Object... params) {
    log(Level.INFO, marker, format, params);
  }

  public static void info(Message message) {
    info(MOD_MARKER, message);
  }

  public static void info(Object object) {
    info(MOD_MARKER, object);
  }

  public static void info(String message) {
    info(MOD_MARKER, message);
  }

  public static void info(String format, Object... params) {
    info(MOD_MARKER, format, params);
  }

  // OFF

  public static void off(Marker marker, Message message) {
    log(Level.OFF, marker, message);
  }

  public static void off(Marker marker, Object object) {
    log(Level.OFF, marker, object);
  }

  public static void off(Marker marker, String message) {
    log(Level.OFF, marker, message);
  }

  public static void off(Marker marker, String format, Object... params) {
    log(Level.OFF, marker, format, params);
  }

  public static void off(Message message) {
    off(MOD_MARKER, message);
  }

  public static void off(Object object) {
    off(MOD_MARKER, object);
  }

  public static void off(String message) {
    off(MOD_MARKER, message);
  }

  public static void off(String format, Object... params) {
    off(MOD_MARKER, format, params);
  }

  // TRACE

  public static void trace(Marker marker, Message message) {
    log(Level.TRACE, marker, message);
  }

  public static void trace(Marker marker, Object object) {
    log(Level.TRACE, marker, object);
  }

  public static void trace(Marker marker, String message) {
    log(Level.TRACE, marker, message);
  }

  public static void trace(Marker marker, String format, Object... params) {
    log(Level.TRACE, marker, format, params);
  }

  public static void trace(Message message) {
    trace(MOD_MARKER, message);
  }

  public static void trace(Object object) {
    trace(MOD_MARKER, object);
  }

  public static void trace(String message) {
    trace(MOD_MARKER, message);
  }

  public static void trace(String format, Object... params) {
    trace(MOD_MARKER, format, params);
  }

  // WARN

  public static void warn(Marker marker, Message message) {
    log(Level.WARN, marker, message);
  }

  public static void warn(Marker marker, Object object) {
    log(Level.WARN, marker, object);
  }

  public static void warn(Marker marker, String message) {
    log(Level.WARN, marker, message);
  }

  public static void warn(Marker marker, String format, Object... params) {
    log(Level.WARN, marker, format, params);
  }

  public static void warn(Message message) {
    warn(MOD_MARKER, message);
  }

  public static void warn(Object object) {
    warn(MOD_MARKER, object);
  }

  public static void warn(String message) {
    warn(MOD_MARKER, message);
  }

  public static void warn(String format, Object... params) {
    warn(MOD_MARKER, format, params);
  }
}
  /** This method adds a message to a resource in the task list. */
  public static IMarker addTask(
      String pluginId,
      IResource resource,
      String location,
      String messageId,
      String message,
      int markerType,
      String markerName,
      String targetObjectName,
      String groupName,
      int offset,
      int length)
      throws CoreException {

    if ((message == null) || (resource == null) || (!resource.exists())) {
      return null;
    }

    int severity = getSeverity(markerType);

    // Allow duplicate entries in the task list.
    // Prior to a full validation, the validation framework will remove all messages owned
    // by a validator before it is executed.
    // Prior to an incremental validation, the validation framework will remove all messages,
    // on each of the changed resources, owned by a validator before it is invoked.
    //
    // It is up to the validator to make sure that it is not adding the same message
    // in more than one place, and also to clear out any old messages which are not cleared
    // by the validation framework.
    IMarker item = null;
    MarkerManager.getDefault().hook(resource);
    if (markerName != null && markerName.length() > 0)
      item = resource.createMarker(markerName); // add a validation marker
    else item = resource.createMarker(VALIDATION_MARKER); // add a validation marker

    // For performance reasons, replace the multiple setAttribute
    // calls above with a single setAttributes call.
    boolean offsetSet = ((offset != IMessage.OFFSET_UNSET) && (length != IMessage.OFFSET_UNSET));
    int size = (offsetSet) ? 10 : 8; // add CHAR_START, CHAR_END only if the offset is set. If
    // the offset is set, it takes precendence over the line
    // number. (eclipse's rule, not mine.)
    String[] attribNames = new String[size];
    Object[] attribValues = new Object[size];

    // Very first thing, add the owner. That way, if the code dies
    // before things are persisted, hopefully this marker will be persisted.
    // Hopefully, eclipse WILL persist this field, as requested.
    attribNames[0] = VALIDATION_MARKER_OWNER;
    attribValues[0] = pluginId;
    attribNames[1] = VALIDATION_MARKER_SEVERITY; // this validation severity is stored, in
    // addition to the marker severity, to enable
    // more than one severity of message to be
    // displayed. e.g. ERROR | WARNING (using
    // binary OR). The IMarker constants are
    // regular decimal constants.
    attribValues[1] = new Integer(markerType);
    attribNames[2] = VALIDATION_MARKER_TARGETOBJECT; // to distinguish between messages which
    // are registered on an IResource, but
    // against different target objects
    attribValues[2] = ((targetObjectName == null) ? "" : targetObjectName); // $NON-NLS-1$
    attribNames[3] = VALIDATION_MARKER_GROUP;
    attribValues[3] = ((groupName == null) ? "" : groupName); // $NON-NLS-1$
    attribNames[4] = IMarker.MESSAGE;
    attribValues[4] = message;
    attribNames[5] = VALIDATION_MARKER_MESSAGEID;
    attribValues[5] = messageId;

    attribNames[6] = IMarker.SEVERITY; // IMarker.SEVERITY_ERROR, IMarker.SEVERITY_WARNING,
    // IMarker.SEVERITY_INFO
    attribValues[6] = new Integer(severity);
    try {
      // If the location is a line number, store it as a line number
      Integer lineNumber = Integer.valueOf(location);
      attribNames[7] = IMarker.LINE_NUMBER;
      attribValues[7] = lineNumber;
    } catch (NumberFormatException exc) {
      // Otherwise, store it as a text location
      attribNames[7] = IMarker.LOCATION;
      attribValues[7] = location;
    }

    if (offsetSet) {
      attribNames[8] = IMarker.CHAR_START;
      attribValues[8] = new Integer(offset);
      attribNames[9] = IMarker.CHAR_END;
      attribValues[9] = new Integer(offset + length);
    }

    item.setAttributes(attribNames, attribValues);

    return item;
  }