本文整理汇总了Java中org.eclipse.jdt.internal.compiler.env.INameEnvironment.cleanup方法的典型用法代码示例。如果您正苦于以下问题:Java INameEnvironment.cleanup方法的具体用法?Java INameEnvironment.cleanup怎么用?Java INameEnvironment.cleanup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.jdt.internal.compiler.env.INameEnvironment
的用法示例。
在下文中一共展示了INameEnvironment.cleanup方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: evaluateCodeSnippet
import org.eclipse.jdt.internal.compiler.env.INameEnvironment; //导入方法依赖的package包/类
/**
* @see IEvaluationContext#evaluateCodeSnippet(String, ICodeSnippetRequestor, IProgressMonitor)
*/
public void evaluateCodeSnippet(String codeSnippet, ICodeSnippetRequestor requestor, IProgressMonitor progressMonitor) throws JavaModelException {
checkBuilderState();
INameEnvironment environment = null;
try {
this.context.evaluate(
codeSnippet.toCharArray(),
environment = getBuildNameEnvironment(),
this.project.getOptions(true),
getInfrastructureEvaluationRequestor(requestor),
getProblemFactory());
} catch (InstallException e) {
handleInstallException(e);
} finally {
if (environment != null) environment.cleanup();
}
}
示例2: evaluateVariable
import org.eclipse.jdt.internal.compiler.env.INameEnvironment; //导入方法依赖的package包/类
/**
* @see IEvaluationContext#evaluateVariable(IGlobalVariable, ICodeSnippetRequestor, IProgressMonitor)
*/
public void evaluateVariable(IGlobalVariable variable, ICodeSnippetRequestor requestor, IProgressMonitor progressMonitor) throws JavaModelException {
checkBuilderState();
INameEnvironment environment = null;
try {
this.context.evaluateVariable(
((GlobalVariableWrapper)variable).variable,
environment = getBuildNameEnvironment(),
this.project.getOptions(true),
getInfrastructureEvaluationRequestor(requestor),
getProblemFactory());
} catch (InstallException e) {
handleInstallException(e);
} finally {
if (environment != null) environment.cleanup();
}
}
示例3: validateImports
import org.eclipse.jdt.internal.compiler.env.INameEnvironment; //导入方法依赖的package包/类
/**
* @see IEvaluationContext#validateImports(ICodeSnippetRequestor)
*/
public void validateImports(ICodeSnippetRequestor requestor) {
checkBuilderState();
INameEnvironment environment = null;
try {
this.context.evaluateImports(
environment = getBuildNameEnvironment(),
getInfrastructureEvaluationRequestor(requestor),
getProblemFactory());
} finally {
if (environment != null) environment.cleanup();
}
}
示例4: parse
import org.eclipse.jdt.internal.compiler.env.INameEnvironment; //导入方法依赖的package包/类
/** Parse the given source units and class path and store it into the given output map */
public static INameEnvironment parse(
CompilerOptions options,
@NonNull List<ICompilationUnit> sourceUnits,
@NonNull List<String> classPath,
@NonNull Map<ICompilationUnit, CompilationUnitDeclaration> outputMap,
@Nullable LintClient client) {
INameEnvironment environment = new FileSystem(
classPath.toArray(new String[classPath.size()]), new String[0],
options.defaultEncoding);
IErrorHandlingPolicy policy = DefaultErrorHandlingPolicies.proceedWithAllProblems();
IProblemFactory problemFactory = new DefaultProblemFactory(Locale.getDefault());
ICompilerRequestor requestor = new ICompilerRequestor() {
@Override
public void acceptResult(CompilationResult result) {
// Not used; we need the corresponding CompilationUnitDeclaration for the source
// units (the AST parsed from source) which we don't get access to here, so we
// instead subclass AST to get our hands on them.
}
};
NonGeneratingCompiler compiler = new NonGeneratingCompiler(environment, policy, options,
requestor, problemFactory, outputMap);
try {
compiler.compile(sourceUnits.toArray(new ICompilationUnit[sourceUnits.size()]));
} catch (OutOfMemoryError e) {
environment.cleanup();
// Since we're running out of memory, if it's all still held we could potentially
// fail attempting to log the failure. Actively get rid of the large ECJ data
// structure references first so minimize the chance of that
//noinspection UnusedAssignment
compiler = null;
//noinspection UnusedAssignment
environment = null;
//noinspection UnusedAssignment
requestor = null;
//noinspection UnusedAssignment
problemFactory = null;
//noinspection UnusedAssignment
policy = null;
String msg = "Ran out of memory analyzing .java sources with ECJ: Some lint checks "
+ "may not be accurate (missing type information from the compiler)";
if (client != null) {
// Don't log exception too; this isn't a compiler error per se where we
// need to pin point the exact unlucky code that asked for memory when it
// had already run out
client.log(null, msg);
} else {
System.out.println(msg);
}
} catch (Throwable t) {
if (client != null) {
CompilationUnitDeclaration currentUnit = compiler.getCurrentUnit();
if (currentUnit == null || currentUnit.getFileName() == null) {
client.log(t, "ECJ compiler crashed");
} else {
client.log(t, "ECJ compiler crashed processing %1$s",
new String(currentUnit.getFileName()));
}
} else {
t.printStackTrace();
}
environment.cleanup();
environment = null;
}
return environment;
}