Skip to content
Snippets Groups Projects
Commit c366847b authored by Luca Cristoforetti's avatar Luca Cristoforetti
Browse files

Change message type and handling

parent a8286610
No related branches found
No related tags found
No related merge requests found
......@@ -11,6 +11,7 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EValidator;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPage;
......@@ -24,6 +25,8 @@ import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.IPage;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.xtext.nodemodel.INode;
import org.polarsys.chess.service.gui.utils.ReportProblemsUtil;
public class CheckerManager {
......@@ -101,21 +104,35 @@ public class CheckerManager {
// }
for (CheckerMessage msn : newMessages) {
if (msn.eObject != null) {
if (msn.object != null && msn.object instanceof EObject) {
IMarker marker = msn.file.createMarker(EValidator.MARKER);
marker.setAttribute(CHECKER_NAME, msn.checkerName);
marker.setAttribute(IMarker.MESSAGE, msn.message);
String location = EcoreUtil.getURI(msn.eObject).toString();
if (msn.eObject instanceof NamedElement) {
location = ((NamedElement) msn.eObject).getName();
String location = EcoreUtil.getURI((EObject) msn.object).toString();
if (msn.object instanceof NamedElement) {
location = ((NamedElement) msn.object).getQualifiedName();
}
marker.setAttribute(IMarker.LOCATION, location);
marker.setAttribute(IMarker.SEVERITY, msn.severity);
marker.setAttribute(EValidator.URI_ATTRIBUTE, EcoreUtil.getURI(msn.eObject).toString());
marker.setAttribute(EValidator.URI_ATTRIBUTE, EcoreUtil.getURI((EObject) msn.object).toString());
} else if (msn.object != null && msn.object instanceof INode) {
try {
final INode node = (INode) msn.object;
if (msn.severity == 0) {
ReportProblemsUtil.reportInfo(msn.file, msn.message, node.getStartLine(),
node.getOffset(), node.getEndOffset());
} else if (msn.severity == 1) {
ReportProblemsUtil.reportWarning(msn.file, msn.message, node.getStartLine(),
node.getOffset(), node.getEndOffset());
} else if (msn.severity == 2) {
ReportProblemsUtil.reportError(msn.file, msn.message, node.getStartLine(),
node.getOffset(), node.getEndOffset());
}
} catch (NullPointerException | CoreException e) {
e.printStackTrace();
}
}
}
}
private Set<IFile> extractIFiles(List<CheckerMessage> checkerMessages) {
......
......@@ -9,20 +9,20 @@ public class CheckerMessage {
protected IFile file;
protected int severity;
protected String message;
protected EObject eObject;
protected Object object;
protected String checkerName;
public CheckerMessage(String message, int severity ,EObject eObject, String checkerName ) {
this(WorkspaceSynchronizer.getFile(eObject.eResource()), severity, message, eObject, checkerName);
public CheckerMessage(String message, int severity ,Object object, String checkerName ) {
this((object instanceof EObject) ? WorkspaceSynchronizer.getFile(((EObject) object).eResource()) : null,
severity, message, object, checkerName);
}
public CheckerMessage(IFile file, int severity, String message, EObject eObject, String checkerName) {
public CheckerMessage(IFile file, int severity, String message, Object object, String checkerName) {
super();
this.file = file;
this.severity = severity;
this.message = message;
this.eObject = eObject;
this.object = object;
this.checkerName = checkerName;
}
......@@ -30,5 +30,4 @@ public class CheckerMessage {
return message;
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment