blob: 43170e742f45fdc77416290d84d30162f221cda2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2007 BEA Systems, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* tyeung@bea.com - initial API
*******************************************************************************/
package org.eclipse.jdt.apt.core.util;
import org.eclipse.jdt.core.dom.ASTNode;
import com.sun.mirror.apt.Messager;
import com.sun.mirror.util.SourcePosition;
/**
* Extend the APT {@link Messager} to allow the registrating of diagnostics on ast nodes.
*/
public interface EclipseMessager extends Messager
{
/**
* Problem ID for APT problems that do not have quick fixes
*/
public static final int APT_PROBLEM_ID = /*TODO: switch to IProblem.ExternalProblemNotFixable*/ 901;
/**
* Problem ID for APT problems that have quick fixes.
* If an APT plugin wants to write a quick-fix for their problems,
* they should look for this ID.
*
* see org.eclipse.jdt.ui.text.java.IQuickAssistProcessor
*/
public static final int APT_QUICK_FIX_PROBLEM_ID = /* TODO: switch to IProblem.ExternalProblemFixable*/ 900;
/**
* Print an error message on the given AST node.
* The AST node must came from the AST that is associated with the environment.
* @param node
* @param msg the error message
* @throws IllegalArgumentException if <code>node</code> or <code>msg</code> is null.
* Also, if the node did not come from the ast in the environment.
*/
void printError(ASTNode node, String msg);
/**
* Print a warning on the given AST node.
* The AST node must came from the AST that is associated with the environment.
* @param node
* @param msg the warning message
* @throws IllegalArgumentException if <code>node</code> or <code>msg</code> is null.
* Also, if the node did not come from the ast in the environment.
*/
void printWarning(ASTNode node, String msg);
/**
* Print a notice on the given AST node.
* The AST node must came from the AST that is associated with the environment.
* @param node
* @param msg the warning message
* @throws IllegalArgumentException if <code>node</code> or <code>msg</code> is null.
* Also, if the node did not come from the ast in the environment.
*/
void printNotice(ASTNode node, String msg);
/**
* Print an error including the given arguments for use
* in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
* registered with the provided pluginId and errorId will
* then get called if the user attempt to quick-fix that error.
*
* @param pos position of the error
* @param msg message to display to the user
* @param pluginId plugin which will provide an apt quick fix processor
* for this error. Cannot be null.
* @param errorId a plugin-provided error code which will be meaningful
* to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
* Cannot be null.
*/
void printFixableError(SourcePosition pos, String msg, String pluginId, String errorId);
/**
* Print a warning including the given arguments for use
* in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
* registered with the provided pluginId and errorId will
* then get called if the user attempt to quick-fix that warning.
*
* @param pos position of the error
* @param msg message to display to the user
* @param pluginId plugin which will provide an apt quick fix processor
* for this error. Cannot be null.
* @param errorId a plugin-provided error code which will be meaningful
* to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
* Cannot be null.
*/
void printFixableWarning(SourcePosition pos, String msg, String pluginId, String errorId);
/**
* Print a notice including the given arguments for use
* in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
* registered with the provided pluginId and errorId will
* then get called if the user attempt to quick-fix that notice.
*
* @param pos position of the error
* @param msg message to display to the user
* @param pluginId plugin which will provide an apt quick fix processor
* for this error. Cannot be null.
* @param errorId a plugin-provided error code which will be meaningful
* to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
* Cannot be null.
*/
void printFixableNotice(SourcePosition pos, String msg, String pluginId, String errorId);
/**
* Print an error including the given arguments for use
* in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
* registered with the provided pluginId and errorId will
* then get called if the user attempt to quick-fix that error.
*
* @param msg message to display to the user
* @param pluginId plugin which will provide an apt quick fix processor
* for this error. Cannot be null.
* @param errorId a plugin-provided error code which will be meaningful
* to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
* Cannot be null.
*/
void printFixableError(String msg, String pluginId, String errorId);
/**
* Print a warning including the given arguments for use
* in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
* registered with the provided pluginId and errorId will
* then get called if the user attempt to quick-fix that warning.
*
* @param msg message to display to the user
* @param pluginId plugin which will provide an apt quick fix processor
* for this error. Cannot be null.
* @param errorId a plugin-provided error code which will be meaningful
* to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
* Cannot be null.
*/
void printFixableWarning(String msg, String pluginId, String errorId);
/**
* Print a notice including the given arguments for use
* in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
* registered with the provided pluginId and errorId will
* then get called if the user attempt to quick-fix that notice.
*
* @param msg message to display to the user
* @param pluginId plugin which will provide an apt quick fix processor
* for this error. Cannot be null.
* @param errorId a plugin-provided error code which will be meaningful
* to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
* Cannot be null.
*/
void printFixableNotice(String msg, String pluginId, String errorId);
}