package org.rascalmpl.eclipse.nature;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.runtime.IStatus;
import io.usethesource.vallang.ISourceLocation;
import io.usethesource.impulse.parser.IMessageHandler;
public class WarningsToMessageHandler implements IWarningHandler {
private final ISourceLocation uri;
private final IMessageHandler handler;
public WarningsToMessageHandler(ISourceLocation uri, IMessageHandler handler) {
this.uri = uri;
this.handler = handler;
}
@Override
public void warning(String msg, ISourceLocation src) {
if (src.top().isEqual(uri.top())) {
Map<String,Object> attrs = new HashMap<String,Object>();
attrs.put(IMarker.SEVERITY, IStatus.WARNING);
attrs.put(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
handler.handleSimpleMessage(msg, src.getOffset(), src.getOffset() + src.getLength(), src.getBeginColumn(), src.getEndColumn(), src.getBeginLine(), src.getEndLine(), attrs);
}
}
}