use of spoon.support.compiler.jdt.JDTBatchCompiler in project spoon by INRIA.
the class CompilationTest method testFilterResourcesFile.
@Test
public void testFilterResourcesFile() throws Exception {
// shows how to filter input java files, for https://github.com/INRIA/spoon/issues/877
Launcher launcher = new Launcher() {
@Override
public SpoonModelBuilder createCompiler() {
return new JDTBasedSpoonCompiler(getFactory()) {
@Override
protected JDTBatchCompiler createBatchCompiler() {
return new JDTBatchCompiler(this) {
@Override
public CompilationUnit[] getCompilationUnits() {
List<CompilationUnit> units = new ArrayList<>();
for (CompilationUnit u : super.getCompilationUnits()) {
if (new String(u.getMainTypeName()).contains("Foo")) {
units.add(u);
}
}
return units.toArray(new CompilationUnit[0]);
}
};
}
};
}
};
launcher.addInputResource("./src/test/java/spoon/test/imports");
launcher.buildModel();
int n = 0;
// we indeed only have types declared in a file called *Foo*
for (CtType<?> t : launcher.getFactory().getModel().getAllTypes()) {
n++;
assertTrue(t.getPosition().getFile().getAbsolutePath().contains("Foo"));
}
assertTrue(n >= 2);
}
use of spoon.support.compiler.jdt.JDTBatchCompiler in project spoon by INRIA.
the class CompilationTest method testFilterResourcesDir.
@Test
public void testFilterResourcesDir() throws Exception {
// shows how to filter input java dir
// only in package called "reference"
Launcher launcher = new Launcher() {
@Override
public SpoonModelBuilder createCompiler() {
return new JDTBasedSpoonCompiler(getFactory()) {
@Override
protected JDTBatchCompiler createBatchCompiler() {
return new JDTBatchCompiler(this) {
@Override
public CompilationUnit[] getCompilationUnits() {
List<CompilationUnit> units = new ArrayList<>();
for (CompilationUnit u : super.getCompilationUnits()) {
if (new String(u.getFileName()).replace('\\', '/').contains("/reference/")) {
units.add(u);
}
}
return units.toArray(new CompilationUnit[0]);
}
};
}
};
}
};
launcher.addInputResource("./src/test/java/spoon/test");
launcher.buildModel();
// we indeed only have types declared in a file in package reference
int n = 0;
for (CtType<?> t : launcher.getModel().getAllTypes()) {
n++;
assertTrue(t.getQualifiedName().contains("reference"));
}
assertTrue(n >= 2);
}
Aggregations