コード例 #1
0
 public <T> Collection<? extends T> instantiateSubclasses(
     Class<T> parentType,
     String packagePath,
     Class[] constructorParams,
     Object[] constructorArgs) {
   Collection<T> result = new HashSet<T>();
   for (Class<? extends T> clazz : getDescendants(parentType, packagePath)) {
     if (Utils.isInstantiable(clazz)) {
       result.add(newInstance(constructorParams, constructorArgs, clazz));
     }
   }
   return result;
 }
コード例 #2
0
 @Override
 public void loadGlue(Glue glue, List<String> gluePaths) {
   super.loadGlue(glue, gluePaths);
   // add 'test' source folder in Application Classloader
   if (!Play.javaPath.contains("test")) {
     Play.javaPath.add(Play.getVirtualFile("test"));
     // Restart Applications
     Play.stop();
     Play.start();
   }
   for (Class glueCodeClass : Play.classloader.getAllClasses()) {
     while (glueCodeClass != Object.class
         && !glueCodeClass.isInterface()
         && !Utils.isInstantiable(glueCodeClass)) {
       // those can't be instantiated without container class present.
       glueCodeClass = glueCodeClass.getSuperclass();
     }
     for (Method method : glueCodeClass.getMethods()) {
       loadGlue(glue, method);
     }
   }
 }