package fi.otavanopisto.muikku.plugins.dnm.util; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import fi.otavanopisto.muikku.plugins.workspace.model.WorkspaceMaterial; public abstract class AbstractHtmlMaterialCleanerTask implements HtmlMaterialCleanerTask { private boolean modified; private WorkspaceMaterial workspaceMaterial; public boolean process(Document document, WorkspaceMaterial material) { this.modified = false; this.workspaceMaterial = material; cleanNodes(document.getDocumentElement().getChildNodes()); return this.modified; } private void cleanNodes(NodeList nodes) { for (int i = 0; i < nodes.getLength(); i++) { Node node = nodes.item(i); if (node instanceof Element) { cleanElement((Element) node); } cleanNodes(node.getChildNodes()); } } protected abstract void cleanElement(Element e); protected boolean isModified() { return modified; } protected WorkspaceMaterial getWorkspaceMaterial() { return workspaceMaterial; } protected void markModified() { modified = true; } }