本文整理汇总了Java中com.sun.tools.javac.api.MultiTaskListener.instance方法的典型用法代码示例。如果您正苦于以下问题:Java MultiTaskListener.instance方法的具体用法?Java MultiTaskListener.instance怎么用?Java MultiTaskListener.instance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.sun.tools.javac.api.MultiTaskListener
的用法示例。
在下文中一共展示了MultiTaskListener.instance方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: JavacProcessingEnvironment
import com.sun.tools.javac.api.MultiTaskListener; //导入方法依赖的package包/类
protected JavacProcessingEnvironment(Context context) {
this.context = context;
context.put(JavacProcessingEnvironment.class, this);
log = Log.instance(context);
source = Source.instance(context);
diags = JCDiagnostic.Factory.instance(context);
options = Options.instance(context);
printProcessorInfo = options.isSet(XPRINTPROCESSORINFO);
printRounds = options.isSet(XPRINTROUNDS);
verbose = options.isSet(VERBOSE);
lint = Lint.instance(context).isEnabled(PROCESSING);
if (options.isSet(PROC, "only") || options.isSet(XPRINT)) {
JavaCompiler compiler = JavaCompiler.instance(context);
compiler.shouldStopPolicyIfNoError = CompileState.PROCESS;
}
fatalErrors = options.isSet("fatalEnterError");
showResolveErrors = options.isSet("showResolveErrors");
werror = options.isSet(WERROR);
platformAnnotations = initPlatformAnnotations();
// Initialize services before any processors are initialized
// in case processors use them.
filer = new JavacFiler(context);
messager = new JavacMessager(context, this);
elementUtils = JavacElements.instance(context);
typeUtils = JavacTypes.instance(context);
processorOptions = initProcessorOptions(context);
unmatchedProcessorOptions = initUnmatchedProcessorOptions();
messages = JavacMessages.instance(context);
taskListener = MultiTaskListener.instance(context);
initProcessorClassLoader();
}
示例2: JavacProcessingEnvironment
import com.sun.tools.javac.api.MultiTaskListener; //导入方法依赖的package包/类
protected JavacProcessingEnvironment(Context context) {
this.context = context;
context.put(JavacProcessingEnvironment.class, this);
log = Log.instance(context);
source = Source.instance(context);
diags = JCDiagnostic.Factory.instance(context);
options = Options.instance(context);
printProcessorInfo = options.isSet(Option.XPRINTPROCESSORINFO);
printRounds = options.isSet(Option.XPRINTROUNDS);
verbose = options.isSet(Option.VERBOSE);
lint = Lint.instance(context).isEnabled(PROCESSING);
compiler = JavaCompiler.instance(context);
if (options.isSet(Option.PROC, "only") || options.isSet(Option.XPRINT)) {
compiler.shouldStopPolicyIfNoError = CompileState.PROCESS;
}
fatalErrors = options.isSet("fatalEnterError");
showResolveErrors = options.isSet("showResolveErrors");
werror = options.isSet(Option.WERROR);
fileManager = context.get(JavaFileManager.class);
platformAnnotations = initPlatformAnnotations();
// Initialize services before any processors are initialized
// in case processors use them.
filer = new JavacFiler(context);
messager = new JavacMessager(context, this);
elementUtils = JavacElements.instance(context);
typeUtils = JavacTypes.instance(context);
modules = Modules.instance(context);
types = Types.instance(context);
annotate = Annotate.instance(context);
processorOptions = initProcessorOptions();
unmatchedProcessorOptions = initUnmatchedProcessorOptions();
messages = JavacMessages.instance(context);
taskListener = MultiTaskListener.instance(context);
symtab = Symtab.instance(context);
names = Names.instance(context);
enter = Enter.instance(context);
initialCompleter = ClassFinder.instance(context).getCompleter();
chk = Check.instance(context);
initProcessorLoader();
allowModules = source.allowModules();
}
示例3: JavacProcessingEnvironment
import com.sun.tools.javac.api.MultiTaskListener; //导入方法依赖的package包/类
protected JavacProcessingEnvironment(Context context) {
this.context = context;
context.put(JavacProcessingEnvironment.class, this);
log = Log.instance(context);
source = Source.instance(context);
diags = JCDiagnostic.Factory.instance(context);
options = Options.instance(context);
printProcessorInfo = options.isSet(XPRINTPROCESSORINFO);
printRounds = options.isSet(XPRINTROUNDS);
verbose = options.isSet(VERBOSE);
lint = Lint.instance(context).isEnabled(PROCESSING);
compiler = JavaCompiler.instance(context);
if (options.isSet(PROC, "only") || options.isSet(XPRINT)) {
compiler.shouldStopPolicyIfNoError = CompileState.PROCESS;
}
fatalErrors = options.isSet("fatalEnterError");
showResolveErrors = options.isSet("showResolveErrors");
werror = options.isSet(WERROR);
fileManager = context.get(JavaFileManager.class);
platformAnnotations = initPlatformAnnotations();
// Initialize services before any processors are initialized
// in case processors use them.
filer = new JavacFiler(context);
messager = new JavacMessager(context, this);
elementUtils = JavacElements.instance(context);
typeUtils = JavacTypes.instance(context);
modules = Modules.instance(context);
types = Types.instance(context);
processorOptions = initProcessorOptions();
unmatchedProcessorOptions = initUnmatchedProcessorOptions();
messages = JavacMessages.instance(context);
taskListener = MultiTaskListener.instance(context);
symtab = Symtab.instance(context);
names = Names.instance(context);
enter = Enter.instance(context);
initialCompleter = ClassFinder.instance(context).getCompleter();
chk = Check.instance(context);
moduleHelper = ModuleHelper.instance(context);
initProcessorLoader();
defaultModule = source.allowModules() && options.isUnset("noModules")
? symtab.unnamedModule : symtab.noModule;
}
示例4: clearPendingUnits
import com.sun.tools.javac.api.MultiTaskListener; //导入方法依赖的package包/类
protected void clearPendingUnits(BasicJavacTask task) {
List<CompilationUnitTaskList> missing = new ArrayList<>();
cups.values()
.stream()
.filter(pcu -> pcu.getUnit() == null)
.forEach(missing::add);
if (!missing.isEmpty()) {
Context ctx = new Context(task.getContext());
ctx.put(JavacService.class, service);
MultiTaskListener tasks = MultiTaskListener.instance(ctx);
tasks.add(getTaskListener(task));
JavacProcessingEnvironment env = JavacProcessingEnvironment.instance(ctx);
try (
JavacFileManager jfm = new JavacFileManager(ctx, false, Charset.forName("UTF-8"))
) {
List<JavaFileObject> missingFiles = new ArrayList<>();
missing.forEach(pcu -> {
String name = pcu.getName();
TypeElement element = task.getElements().getTypeElement(name);
if (element == null) {
X_Log.info(getClass(), "No element found for ", name);
} else {
final javax.lang.model.element.Name qualified = element.getQualifiedName();
Name binary = env.getElementUtils().getBinaryName(element);
String relativeName = binary.toString().split("[$]")[0];// TODO check for enclosing types instead of this nasty hack
JavaFileObject javaFile;
try {
javaFile = jfm.getJavaFileForInput(StandardLocation.SOURCE_OUTPUT, relativeName, JavaFileObject.Kind.SOURCE);
if (javaFile == null) {
javaFile = jfm.getJavaFileForInput(StandardLocation.SOURCE_PATH, relativeName, JavaFileObject.Kind.SOURCE);
if (javaFile == null) {
javaFile = jfm.getJavaFileForInput(StandardLocation.CLASS_PATH, relativeName, JavaFileObject.Kind.SOURCE);
if (javaFile == null) {
X_Log.warn(getClass(), "Unable to find file ", relativeName, " to recompile...");
}
}
}
if (javaFile != null){
missingFiles.add(javaFile);
}
} catch (Throwable e) {
X_Log.warn(getClass(), "Unable to compile source for "+binary, e);
throw X_Debug.rethrow(e);
}
// pcu.setUnit(cu);
// pcu.finish();
}
});
JavaCompiler compiler = JavaCompiler.instance(ctx);
final com.sun.tools.javac.util.List<JavaFileObject> javaFiles = com.sun.tools.javac.util.List.from(missingFiles.toArray(new JavaFileObject[missingFiles.size()]));
compiler.compile(javaFiles);
} catch (Throwable throwable) {
throw X_Debug.rethrow(throwable);
}
}
doFinish();
}