/** * Cleans all PDE problem markers from schema files in the given container. * * @param container * @param monitor progress monitor * @throws CoreException */ private void cleanSchemasIn(IContainer container, IProgressMonitor monitor) throws CoreException { if (monitor.isCanceled()) { throw new OperationCanceledException(); } IResource[] members = container.members(); for (int i = 0; i < members.length; i++) { IResource member = members[i]; if (member instanceof IContainer) cleanSchemasIn((IContainer) member, monitor); else if (member instanceof IFile && isSchemaFile((IFile) member)) { member.deleteMarkers(PDEMarkerFactory.MARKER_ID, true, IResource.DEPTH_ZERO); } } }
@Override protected void clean(IProgressMonitor monitor) throws CoreException { SubMonitor localmonitor = SubMonitor.convert(monitor, NLS.bind(PDECoreMessages.ExtensionPointSchemaBuilder_0, getProject().getName()), 1); try { // clean existing markers on schema files cleanSchemasIn(getProject(), localmonitor); localmonitor.worked(1); } finally { localmonitor.done(); } }