Change message type and handling
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerManager.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerManager.java
index 6680291..5e66638 100644
--- a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerManager.java
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerManager.java
@@ -11,6 +11,7 @@
 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.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 @@
 		// }
 
 		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) {
diff --git a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerMessage.java b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerMessage.java
index 7b6e35f..c0f5c5e 100644
--- a/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerMessage.java
+++ b/plugins/org.polarsys.chess.checkers/src/org/polarsys/chess/checkers/core/checkerManager/CheckerMessage.java
@@ -9,20 +9,20 @@
 	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 @@
 		return message;
 	}
 	
-	
 }
\ No newline at end of file