private CompilationUnit createAST(IJavaElement je, IProgressMonitor progressMonitor) { ASTParser parser = ASTParser.newParser(AST_LEVEL);
private CompilationUnit createAST(IJavaElement je, final IProgressMonitor progressMonitor) { final ASTParser parser = ASTParser.newParser(AST_LEVEL);
	private CompilationUnit createAST(IJavaElement je, IProgressMonitor progressMonitor) {		ASTParser parser = ASTParser.newParser(AST_LEVEL);		parser.setResolveBindings(true);		if (je.getElementType() == IJavaElement.COMPILATION_UNIT)			parser.setSource((ICompilationUnit)je);		else if (je.getElementType() == IJavaElement.CLASS_FILE)			parser.setSource((IClassFile)je);		if (progressMonitor != null && progressMonitor.isCanceled())			return null;		try {			CompilationUnit root= (CompilationUnit)parser.createAST(progressMonitor);			// mark as unmodifiable			ASTNodes.setFlagsToAST(root, ASTNode.PROTECT);			return root;		} catch (IllegalStateException ex) {			return null;		}	}