blob: a66b9672c6541e20c2bc2af21a036211f31f9bd9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.pde.internal.ua.core.ctxhelp.text;
import java.util.Collection;
import java.util.Iterator;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.xml.sax.SAXParseException;
/**
* Manages markers for xml problems in the context help editor
*/
public class CtxHelpMarkerManager {
public static void refreshMarkers(CtxHelpModel model) {
deleteMarkers(model);
createMarkers(model);
}
public static void deleteMarkers(CtxHelpModel model) {
try {
IMarker[] problems = model.getUnderlyingResource().findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
if (problems != null) {
for (IMarker problem : problems) {
problem.delete();
}
}
} catch (CoreException e) {
}
}
public static void createMarkers(CtxHelpModel model) {
Collection<Exception> errors = model.getErrors();
if (errors == null || errors.isEmpty()) {
return;
}
Iterator<Exception> iter = errors.iterator();
while (iter.hasNext()) {
Throwable exception = iter.next();
if (exception instanceof SAXParseException) {
int line = ((SAXParseException) exception).getLineNumber();
try {
IMarker marker = model.getUnderlyingResource().createMarker(IMarker.PROBLEM);
marker.setAttribute(IMarker.LINE_NUMBER, line);
marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
marker.setAttribute(IMarker.MESSAGE, exception.getLocalizedMessage());
} catch (CoreException e) {
}
}
}
}
}