[jboss-cvs] JBossAS SVN: r78989 - projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/visitor.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Oct 1 09:16:01 EDT 2008
Author: alesj
Date: 2008-10-01 09:16:01 -0400 (Wed, 01 Oct 2008)
New Revision: 78989
Modified:
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/visitor/FederatedResourceVisitor.java
Log:
Remember generated federated filters.
Modified: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/visitor/FederatedResourceVisitor.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/visitor/FederatedResourceVisitor.java 2008-10-01 13:09:15 UTC (rev 78988)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/plugins/visitor/FederatedResourceVisitor.java 2008-10-01 13:16:01 UTC (rev 78989)
@@ -21,9 +21,11 @@
*/
package org.jboss.classloading.plugins.visitor;
+import java.util.Arrays;
+
+import org.jboss.classloading.spi.visitor.ResourceContext;
+import org.jboss.classloading.spi.visitor.ResourceFilter;
import org.jboss.classloading.spi.visitor.ResourceVisitor;
-import org.jboss.classloading.spi.visitor.ResourceFilter;
-import org.jboss.classloading.spi.visitor.ResourceContext;
/**
* Federated resource visitor.
@@ -35,13 +37,16 @@
private ResourceVisitor[] visitors;
private ResourceFilter[] filters;
private ResourceFilter[] recurseFilters;
+
+ private ResourceFilter filter;
+ private ResourceFilter recurseFilter;
private boolean[] recurseFlags;
private boolean[] filterFlags;
public FederatedResourceVisitor(ResourceVisitor[] visitors)
{
- if (visitors == null)
- throw new IllegalArgumentException("Null visitors");
+ if (visitors == null || visitors.length == 0)
+ throw new IllegalArgumentException("Null or empty visitors: " + Arrays.toString(visitors));
this.visitors = visitors;
}
@@ -57,8 +62,12 @@
if (recurseFilters == null || recurseFilters.length == 0)
return null;
- recurseFlags = new boolean[recurseFilters.length];
- return new FederatedRecurseFilter();
+ if (recurseFilter == null)
+ {
+ recurseFlags = new boolean[recurseFilters.length];
+ recurseFilter = new FederatedRecurseFilter();
+ }
+ return recurseFilter;
}
public ResourceFilter getFilter()
@@ -66,15 +75,19 @@
if (filters != null && filters.length == 0)
return null;
- if (filters == null)
+ if (filter == null)
{
- filters = new ResourceFilter[visitors.length];
- for (int i =0; i < visitors.length; i++)
- filters[i] = visitors[i].getFilter();
+ if (filters == null)
+ {
+ filters = new ResourceFilter[visitors.length];
+ for (int i =0; i < visitors.length; i++)
+ filters[i] = visitors[i].getFilter();
+ }
+
+ filterFlags = new boolean[filters == null ? 0 : filters.length];
+ filter = new FederatedResourceFilter();
}
-
- filterFlags = new boolean[filters == null ? 0 : filters.length];
- return new FederatedResourceFilter();
+ return filter;
}
public void visit(ResourceContext resource)
More information about the jboss-cvs-commits
mailing list