Author: rob.stryker(a)jboss.com
Date: 2007-07-27 15:04:09 -0400 (Fri, 27 Jul 2007)
New Revision: 2705
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
Log:
method was including root node in list if it matched.
API changed to ask whether it should include self
Modified:
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
===================================================================
---
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java 2007-07-27
17:15:28 UTC (rev 2704)
+++
trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java 2007-07-27
19:04:09 UTC (rev 2705)
@@ -84,7 +84,7 @@
* @return
*/
public static IArchiveFileSet[] findAllDescendentFilesets(IArchiveNode node) {
- ArrayList matches = findAllDescendents(node, IArchiveNode.TYPE_ARCHIVE_FILESET);
+ ArrayList matches = findAllDescendents(node, IArchiveNode.TYPE_ARCHIVE_FILESET, true);
return (IArchiveFileSet[]) matches.toArray(new IArchiveFileSet[matches.size()]);
}
@@ -94,7 +94,7 @@
* @return
*/
public static IArchiveFolder[] findAllDescendentFolders(IArchiveNode node) {
- ArrayList matches = findAllDescendents(node, IArchiveNode.TYPE_ARCHIVE_FOLDER);
+ ArrayList matches = findAllDescendents(node, IArchiveNode.TYPE_ARCHIVE_FOLDER, false);
return (IArchiveFolder[]) matches.toArray(new IArchiveFolder[matches.size()]);
}
@@ -103,14 +103,12 @@
* @param node
* @return
*/
- public static ArrayList findAllDescendents(IArchiveNode node, final int type) {
+ public static ArrayList findAllDescendents(IArchiveNode node, final int type, final
boolean includeSelf) {
final ArrayList matches = new ArrayList();
- if( node.getNodeType() == type && !matches.contains(node) )
- matches.add(node);
-
+ final IArchiveNode original = node;
node.accept(new IArchiveNodeVisitor() {
public boolean visit(IArchiveNode node) {
- if( node.getNodeType() == type && !matches.contains(node))
+ if( ((node.getNodeType() == type) && !matches.contains(node)) &&
(includeSelf || node != original))
matches.add(node);
return true;
}
Show replies by date