package com.spun.util.introspection; import java.io.File; import java.util.ArrayList; import com.spun.util.ObjectUtils; import com.spun.util.io.FileUtils; import com.spun.util.io.filefilters.JavaClassFileFilter; public class ClassGetter { public static ArrayList<Class> getClasses(String packageName, String classSuffix) throws ClassNotFoundException { ArrayList<Class> classes = new ArrayList<Class>(); File[] testFiles = FileUtils.getRecursiveFileList(new File("."), new JavaClassFileFilter(packageName, classSuffix)); String pathHead = packageName.substring(0, packageName.indexOf('.')); for (int i = 0; i < testFiles.length; i++) { Class<?> clazz = ObjectUtils.loadClass(getJavaName(testFiles[i], pathHead)); classes.add(clazz); } return classes; } private static String getJavaName(File file, String pathHead) { String path = file.getAbsolutePath(); String extension = ".class"; String fullName = path.substring(path.indexOf(File.separator + pathHead + File.separator) + 1, path.length() - extension.length()); return fullName.replace(File.separatorChar, '.'); } }