* @param source the source representing the compilation unit whose AST is to be returned
* @return the AST structure associated with the given source
* @throws AnalysisException if an AST structure could not be created for the compilation unit
*/
public CompilationUnit getAST(Source source) throws AnalysisException {
ResolvableCompilationUnit holder = astMap.get(source);
if (holder == null) {
holder = analysisContext.computeResolvableCompilationUnit(source);
astMap.put(source, holder);
}
return holder.getCompilationUnit();
}