package org.deved.antlride.internal.jdt.compiler;
import org.deved.antlride.core.AntlrNature;
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.jdt.core.IJavaModelMarker;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.compiler.BuildContext;
import org.eclipse.jdt.core.compiler.CompilationParticipant;
public class AntlrJavaCompilationParticipant extends CompilationParticipant {
@Override
public boolean isActive(IJavaProject javaProject) {
try {
return javaProject.getProject().hasNature(AntlrNature.NATURE_ID);
} catch (CoreException e) {
e.printStackTrace();
return false;
}
}
@Override
public void processAnnotations(BuildContext[] files) {
for (BuildContext buildContext : files) {
IFile file = buildContext.getFile();
try {
IMarker[] markers = file.findMarkers(
IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, false,
IResource.DEPTH_INFINITE);
for (IMarker marker : markers) {
int severity = (Integer) marker
.getAttribute(IMarker.SEVERITY);
if (severity == IMarker.SEVERITY_ERROR) {
System.out
.println(marker.getAttribute(IMarker.MESSAGE));
}
}
} catch (CoreException e) {
e.printStackTrace();
}
}
}
@Override
public boolean isAnnotationProcessor() {
return true;
}
}