Skip to content
Snippets Groups Projects
Commit d43ab31e authored by Sebastian Krings's avatar Sebastian Krings
Browse files

Split problem marker into different classes for each problem, simplified error generation.

parent 020f2547
No related branches found
No related tags found
No related merge requests found
package de.prob.units.problems;
import org.eclipse.core.resources.IMarker;
import org.rodinp.core.IRodinProblem;
import de.prob.units.Activator;
public class IncorrectUnitDefinitionMarker implements IRodinProblem {
private final String message;
private final int severity = IMarker.SEVERITY_ERROR;
public static final String ERROR_CODE = Activator.PLUGIN_ID + "."
+ "incorrectUnitDefinition";
public IncorrectUnitDefinitionMarker(String cstOrVar) {
this.message = "Incorrect Unit Definition on Constant/Variable "
+ cstOrVar;
}
@Override
public String getErrorCode() {
return ERROR_CODE;
}
@Override
public String getLocalizedMessage(Object[] arg0) {
return message;
}
@Override
public int getSeverity() {
return severity;
}
}
package de.prob.units.problems;
import org.eclipse.core.resources.IMarker;
import org.rodinp.core.IRodinProblem;
import de.prob.units.Activator;
public class MultipleUnitsInferredMarker implements IRodinProblem {
private String message;
private int severity;
private final String message;
private final int severity = IMarker.SEVERITY_ERROR;
public static final String ERROR_CODE = Activator.PLUGIN_ID + "."
+ "multipleUnitsInferred";
public MultipleUnitsInferredMarker(int severity, String message) {
this.severity = severity;
this.message = message;
public MultipleUnitsInferredMarker(String cstOrVar) {
this.message = "Multiple Units inferred for Constant/Variable "
+ cstOrVar;
}
@Override
......
package de.prob.units.problems;
import org.eclipse.core.resources.IMarker;
import org.rodinp.core.IRodinProblem;
import de.prob.units.Activator;
public class NoUnitInferredMarker implements IRodinProblem {
private final String message;
private final int severity = IMarker.SEVERITY_WARNING;
public static final String ERROR_CODE = Activator.PLUGIN_ID + "."
+ "multipleUnitsInferred";
public NoUnitInferredMarker(String cstOrVar) {
this.message = "No Units inferred for Constant/Variable " + cstOrVar;
}
@Override
public String getErrorCode() {
return ERROR_CODE;
}
@Override
public String getLocalizedMessage(Object[] arg0) {
return message;
}
@Override
public int getSeverity() {
return severity;
}
}
......@@ -59,7 +59,9 @@ import de.prob.prolog.term.ListPrologTerm;
import de.prob.prolog.term.PrologTerm;
import de.prob.units.pragmas.InferredUnitPragmaAttribute;
import de.prob.units.pragmas.UnitPragmaAttribute;
import de.prob.units.problems.IncorrectUnitDefinitionMarker;
import de.prob.units.problems.MultipleUnitsInferredMarker;
import de.prob.units.problems.NoUnitInferredMarker;
public class StartUnitAnalysisHandler extends AbstractHandler implements
IHandler {
......@@ -168,6 +170,14 @@ public class StartUnitAnalysisHandler extends AbstractHandler implements
.equals(MultipleUnitsInferredMarker.ERROR_CODE)) {
iMarker.delete();
}
if (iMarker.getAttribute(RodinMarkerUtil.ERROR_CODE, "")
.equals(IncorrectUnitDefinitionMarker.ERROR_CODE)) {
iMarker.delete();
}
if (iMarker.getAttribute(RodinMarkerUtil.ERROR_CODE, "")
.equals(NoUnitInferredMarker.ERROR_CODE)) {
iMarker.delete();
}
}
} catch (CoreException e1) {
......@@ -256,18 +266,12 @@ public class StartUnitAnalysisHandler extends AbstractHandler implements
if (variables.get(variableName).startsWith("multiple")) {
var.createProblemMarker(
InferredUnitPragmaAttribute.ATTRIBUTE,
new MultipleUnitsInferredMarker(
IMarker.SEVERITY_ERROR,
"Multiple Units inferred for Variable "
+ variableName));
new MultipleUnitsInferredMarker(variableName));
}
if (variables.get(variableName).equals("unknown")) {
var.createProblemMarker(
InferredUnitPragmaAttribute.ATTRIBUTE,
new MultipleUnitsInferredMarker(
IMarker.SEVERITY_WARNING,
"No Units inferred for Variable "
+ variableName));
new NoUnitInferredMarker(variableName));
}
}
......@@ -278,10 +282,7 @@ public class StartUnitAnalysisHandler extends AbstractHandler implements
.getAttributeValue(UnitPragmaAttribute.ATTRIBUTE))) {
var.createProblemMarker(
InferredUnitPragmaAttribute.ATTRIBUTE,
new MultipleUnitsInferredMarker(
IMarker.SEVERITY_ERROR,
"Incorrect Unit Definition on Variable "
+ variableName));
new IncorrectUnitDefinitionMarker(variableName));
}
}
}
......@@ -306,18 +307,12 @@ public class StartUnitAnalysisHandler extends AbstractHandler implements
if (variables.get(constantName).equals("error")) {
cst.createProblemMarker(
InferredUnitPragmaAttribute.ATTRIBUTE,
new MultipleUnitsInferredMarker(
IMarker.SEVERITY_ERROR,
"Multiple Units inferred for Constant "
+ constantName));
new MultipleUnitsInferredMarker(constantName));
}
if (variables.get(constantName).equals("unknown")) {
cst.createProblemMarker(
InferredUnitPragmaAttribute.ATTRIBUTE,
new MultipleUnitsInferredMarker(
IMarker.SEVERITY_WARNING,
"No Units inferred for Constant "
+ constantName));
new IncorrectUnitDefinitionMarker(constantName));
}
}
......@@ -328,10 +323,7 @@ public class StartUnitAnalysisHandler extends AbstractHandler implements
.getAttributeValue(UnitPragmaAttribute.ATTRIBUTE))) {
cst.createProblemMarker(
InferredUnitPragmaAttribute.ATTRIBUTE,
new MultipleUnitsInferredMarker(
IMarker.SEVERITY_ERROR,
"Incorrect Unit Definition on Constant "
+ constantName));
new MultipleUnitsInferredMarker(constantName));
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment