package sharpen.core;
import org.eclipse.jdt.core.compiler.CategorizedProblem;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.CompilationUnit;
import sharpen.core.framework.ASTUtility;
public class SharpenProblem extends CategorizedProblem {
CompilationUnit _ast;
ASTNode _node;
String _message;
ProblemKind _kind;
public enum ProblemKind {
PARSING_ERROR,
INTERNAL_ERROR,
WARNING
}
public SharpenProblem(CompilationUnit ast, ASTNode node, ProblemKind kind, String message) {
this._ast = ast;
this._node = node;
this._kind = kind;
this._message = message;
}
public String[] getArguments() {
return new String[0];
}
public int getID() {
return ParsingError;
}
public String getMessage() {
return _message;
}
public char[] getOriginatingFileName() {
return ASTUtility.compilationUnitPath(_ast).toCharArray();
}
public int getSourceEnd() {
return -1;
}
public int getSourceLineNumber() {
if (_node != null)
return ASTUtility.lineNumber(_ast, _node);
else
return -1;
}
public int getSourceStart() {
return -1;
}
public boolean isError() {
return _kind != ProblemKind.WARNING;
}
public boolean isWarning() {
return _kind == ProblemKind.WARNING;
}
public void setSourceEnd(int arg0) {
}
public void setSourceLineNumber(int arg0) {
}
public void setSourceStart(int arg0) {
}
@Override
public int getCategoryID() {
if (_kind == ProblemKind.PARSING_ERROR)
return CAT_SYNTAX;
else
return CAT_UNSPECIFIED;
}
@Override
public String getMarkerType() {
return Sharpen.PROBLEM_MARKER;
}
}