/** * Remove nodes not matching the given filter non-recursively. * @param filter The filter to use. */ public void keepAllNodesThatMatch (NodeFilter filter) { keepAllNodesThatMatch (filter, false); }
/** * Remove nodes not matching the given filter non-recursively. * @param filter The filter to use. */ public void keepAllNodesThatMatch (NodeFilter filter) { keepAllNodesThatMatch (filter, false); }
/** * Remove nodes not matching the given filter. * @param filter The filter to use. * @param recursive If <code>true<code> digs into the children recursively. */ public void keepAllNodesThatMatch (NodeFilter filter, boolean recursive) { Node node; NodeList children; for (int i = 0; i < size; ) { node = nodeData[i]; if (!filter.accept (node)) remove (i); else { if (recursive) { children = node.getChildren (); if (null != children) children.keepAllNodesThatMatch (filter, recursive); } i++; } } }
/** * Remove nodes not matching the given filter. * @param filter The filter to use. * @param recursive If <code>true<code> digs into the children recursively. */ public void keepAllNodesThatMatch (NodeFilter filter, boolean recursive) { Node node; NodeList children; for (int i = 0; i < size; ) { node = nodeData[i]; if (!filter.accept (node)) remove (i); else { if (recursive) { children = node.getChildren (); if (null != children) children.keepAllNodesThatMatch (filter, recursive); } i++; } } }
list.keepAllNodesThatMatch (filter, true);