package cideplus.model.ast.utils; import org.eclipse.core.resources.IResource; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.dom.ASTNode; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jface.text.ITextSelection; import cideplus.automation.Util; import cideplus.utils.PluginUtils; public class ASTUtils { public static IResource getCorrespondingResource(ASTNode node) { ASTNode root = node.getRoot(); if (root.getNodeType() == ASTNode.COMPILATION_UNIT) { Object resource = ((CompilationUnit) root).getJavaElement().getAdapter(IResource.class); if (resource != null) { return (IResource) resource; } } return null; } public static ASTNode getNodeFromSelection(ICompilationUnit compilationUnit, ITextSelection selection) { ASTNode node = NodeFinder.perform(Util.getAst(compilationUnit), selection.getOffset(), selection.getLength()); return node; } public static ASTNode getNodeFromSelection(ITextSelection selection) { ICompilationUnit compUnit = PluginUtils.getCurrentCompilationUnit(); return getNodeFromSelection(compUnit, selection); } }