2 * Created by IntelliJ IDEA.
6 * To change template for new class use
7 * Code Style | Class Templates options (Tools | IDE Options).
12 import java
.io
.IOException
;
13 import java
.util
.ArrayList
;
14 import java
.util
.Collection
;
15 import java
.util
.List
;
17 public class ClassFinder
{
18 private final List
<String
> classNameList
= new ArrayList
<String
>();
19 private final int startPackageName
;
21 public ClassFinder(final File classPathRoot
, final String packageRoot
) throws IOException
{
22 startPackageName
= classPathRoot
.getAbsolutePath().length() + 1;
23 String directoryOffset
= packageRoot
.replace('.', File
.separatorChar
);
24 findAndStoreTestClasses(new File(classPathRoot
, directoryOffset
));
27 private String
computeClassName(final File file
) {
28 String absPath
= file
.getAbsolutePath();
29 if (absPath
.endsWith("Test.class")) {
30 String packageBase
= absPath
.substring(startPackageName
, absPath
.length() - ".class".length());
31 return packageBase
.replace(File
.separatorChar
, '.');
38 private void findAndStoreTestClasses(final File current
) throws IOException
{
39 if (current
.isDirectory()) {
40 for (File file
: current
.listFiles()) {
41 findAndStoreTestClasses(file
);
45 String className
= computeClassName(current
);
46 if (className
!= null) {
47 classNameList
.add(className
);
52 public Collection
<String
> getClasses() {