compilingTool to declare if "javac tree API" is supported

This commit is contained in:
Eugene Zhuravlev
2018-12-13 14:42:38 +01:00
parent 63ffc6782b
commit dd6cb26e5e
4 changed files with 18 additions and 6 deletions
@@ -21,8 +21,7 @@ import org.jetbrains.jps.builders.java.CannotCreateJavaCompilerException;
import org.jetbrains.jps.builders.java.JavaCompilingTool;
import org.jetbrains.jps.javac.JavacMain;
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
import javax.tools.*;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -49,6 +48,11 @@ public class JavacCompilerTool extends JavaCompilingTool {
return ALTERNATIVE_ID;
}
@Override
public boolean isCompilerTreeAPISupported() {
return true;
}
@NotNull
@Override
public String getDescription() {
@@ -36,6 +36,10 @@ public abstract class JavaCompilingTool {
return null;
}
public boolean isCompilerTreeAPISupported() {
return false;
}
@NotNull
public abstract String getDescription();
@@ -22,7 +22,7 @@ import org.jetbrains.jps.javac.DiagnosticOutputConsumer;
import org.jetbrains.jps.javac.JavaCompilerToolExtension;
import org.jetbrains.jps.javac.ast.api.JavacFileData;
import javax.tools.JavaCompiler;
import javax.tools.*;
import java.util.Collection;
public abstract class AbstractRefCollectorCompilerToolExtension extends JavaCompilerToolExtension {
@@ -31,7 +31,7 @@ public abstract class AbstractRefCollectorCompilerToolExtension extends JavaComp
@NotNull JavaCompiler.CompilationTask task,
@NotNull Collection<String> options,
@NotNull final DiagnosticOutputConsumer diagnosticConsumer) {
if (isEnabled()) {
if (compilingTool.isCompilerTreeAPISupported() && isEnabled()) {
JavacReferenceCollector.installOn(task, divideImportsRefs(), new Consumer<JavacFileData>() {
@Override
public void consume(JavacFileData data) {
@@ -24,9 +24,8 @@ import org.jetbrains.jps.builders.java.CannotCreateJavaCompilerException;
import org.jetbrains.jps.builders.java.JavaCompilingTool;
import org.jetbrains.jps.model.java.compiler.JavaCompilers;
import javax.tools.JavaCompiler;
import javax.tools.*;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Collections;
import java.util.List;
import java.util.ServiceLoader;
@@ -54,6 +53,11 @@ public class EclipseCompilerTool extends JavaCompilingTool {
return JavaCompilers.ECLIPSE_EMBEDDED_ID;
}
@Override
public boolean isCompilerTreeAPISupported() {
return false;
}
@NotNull
@Override
public String getDescription() {