// requested AST
char[] fileName = unit.compilationResult.getFileName();
ICompilationUnit source = (ICompilationUnit) this.requestedSources.get(fileName);
if (source != null) {
// convert AST
CompilationResult compilationResult = unit.compilationResult;
org.aspectj.org.eclipse.jdt.internal.compiler.env.ICompilationUnit sourceUnit = compilationResult.compilationUnit;
char[] contents = sourceUnit.getContents();
// AspectJ Extension start - use the factory
// old code:
// AST ast = AST.newAST(apiLevel);
// new code:
AST ast = ASTParser.getAST(apiLevel);
// End AspectJ Extension
ast.setFlag(flags | AST.RESOLVED_BINDINGS);
ast.setDefaultNodeFlag(ASTNode.ORIGINAL);
// AspectJ Extension - use the factory
// old code:
// ASTConverter converter = new ASTConverter(compilerOptions, true/*need to resolve bindings*/, this.monitor);
// new code:
ASTConverter converter = ASTConverter.getASTConverter(compilerOptions,true,this.monitor);
// End AspectJ Extension
BindingResolver resolver = new DefaultBindingResolver(unit.scope, owner, this.bindingTables, (flags & ICompilationUnit.ENABLE_BINDINGS_RECOVERY) != 0);
ast.setBindingResolver(resolver);
converter.setAST(ast);
CompilationUnit compilationUnit = converter.convert(unit, contents);
compilationUnit.setTypeRoot(source);
compilationUnit.setLineEndTable(compilationResult.getLineSeparatorPositions());
ast.setDefaultNodeFlag(0);
ast.setOriginalModificationCount(ast.modificationCount());
// pass it to requestor
astRequestor.acceptAST(source, compilationUnit);