You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by db...@apache.org on 2006/10/27 20:57:45 UTC
svn commit: r468499 - in /geronimo/xbean/trunk/xbean-finder/src:
main/java/org/apache/xbean/finder/ClassFinder.java
test/java/org/apache/xbean/finder/ClassFinderTest.java
Author: dblevins
Date: Fri Oct 27 11:57:44 2006
New Revision: 468499
URL: http://svn.apache.org/viewvc?view=rev&rev=468499
Log:
new method findImplementingClasses and corresponding test
Modified:
geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/ClassFinder.java
geronimo/xbean/trunk/xbean-finder/src/test/java/org/apache/xbean/finder/ClassFinderTest.java
Modified: geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/ClassFinder.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/ClassFinder.java?view=diff&rev=468499&r1=468498&r2=468499
==============================================================================
--- geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/ClassFinder.java (original)
+++ geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/ClassFinder.java Fri Oct 27 11:57:44 2006
@@ -111,6 +111,17 @@
return mappedClasses;
}
+ public List<Class> findImplementingClasses(Class interfce){
+ List<Class> allClasses = getClasses();
+ List<Class> classes = new ArrayList<Class>();
+ for (Class clazz : allClasses) {
+ if (interfce.isAssignableFrom(clazz) && !interfce.getName().equals(clazz.getName())) {
+ classes.add(clazz);
+ }
+ }
+ return classes;
+ }
+
public List<Class> getClasses() {
return this.classes;
}
Modified: geronimo/xbean/trunk/xbean-finder/src/test/java/org/apache/xbean/finder/ClassFinderTest.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-finder/src/test/java/org/apache/xbean/finder/ClassFinderTest.java?view=diff&rev=468499&r1=468498&r2=468499
==============================================================================
--- geronimo/xbean/trunk/xbean-finder/src/test/java/org/apache/xbean/finder/ClassFinderTest.java (original)
+++ geronimo/xbean/trunk/xbean-finder/src/test/java/org/apache/xbean/finder/ClassFinderTest.java Fri Oct 27 11:57:44 2006
@@ -24,6 +24,7 @@
import org.acme.foo.Holiday;
import org.acme.foo.Color;
+import org.acme.foo.Primary;
/**
* @version $Rev$ $Date$
@@ -48,4 +49,12 @@
assertNotNull("classes", classes);
assertEquals("classes.size", 8, classes.size());
}
+
+ public void testFindImplementingClasses() throws Exception {
+ ClassFinder classFinder = new ClassFinder(Thread.currentThread().getContextClassLoader());
+ List<Class> classes = classFinder.findImplementingClasses(Primary.class);
+ assertNotNull("classes", classes);
+ assertEquals("classes.size", 4, classes.size());
+ }
+
}