List of usage examples for org.eclipse.jdt.core.dom NodeFinder getCoveredNode
public ASTNode getCoveredNode()
From source file:ca.uvic.chisel.diver.sequencediagrams.sc.java.model.ASTUTils.java
License:Open Source License
public static MethodDeclaration findMethodDeclaration(ASTNode rootNode, IMethod method) { if (rootNode != null) { ISourceRange range;/* w w w.j ava 2 s. c o m*/ try { range = method.getSourceRange(); NodeFinder finder = new NodeFinder(range.getOffset(), range.getLength()); rootNode.accept(finder); return (MethodDeclaration) finder.getCoveredNode(); } catch (JavaModelException e) { } } return null; }
From source file:ca.uvic.chisel.javasketch.internal.ast.ASTUTils.java
License:Open Source License
public static MethodDeclaration findMethodDeclaration(ASTNode rootNode, IMethod method) { if (rootNode != null) { ISourceRange range;/* ww w . ja v a 2s . co m*/ try { if (!method.getOpenable().isOpen()) { method.getOpenable().open(new NullProgressMonitor()); } range = method.getSourceRange(); NodeFinder finder = new NodeFinder(rootNode, range.getOffset(), range.getLength()); ASTNode node = finder.getCoveredNode(); if (node instanceof MethodDeclaration) { return (MethodDeclaration) node; } else { return null; } } catch (JavaModelException e) { SketchPlugin.getDefault().log(e); } } return null; }
From source file:org.autorefactor.refactoring.rules.CommentsRefactoring.java
License:Open Source License
private ASTNode getNextNode(Comment node) { final int nodeEndPosition = node.getStartPosition() + node.getLength(); final ASTNode coveringNode = getCoveringNode(node); final int parentNodeEndPosition = coveringNode.getStartPosition() + coveringNode.getLength(); final NodeFinder finder = new NodeFinder(coveringNode, nodeEndPosition, parentNodeEndPosition - nodeEndPosition); if (node instanceof Javadoc) { return finder.getCoveringNode(); }//from w w w . ja v a 2 s . co m return finder.getCoveredNode(); }
From source file:org.eclim.plugin.jdt.command.correct.ProblemLocation.java
License:Open Source License
/** * {@inheritDoc}/*w ww.j a va 2 s.co m*/ */ public ASTNode getCoveredNode(CompilationUnit astRoot) { NodeFinder finder = new NodeFinder(astRoot, offset, length); return finder.getCoveredNode(); }
From source file:org.eclipse.ajdt.internal.ui.refactoring.pullout.PullOutRefactoring.java
License:Open Source License
/** * Find AST node corresponding to a given IMember. *//* w w w . j a v a 2s . c o m*/ private ASTNode findASTNode(ASTNode cuNode, IMember member) throws JavaModelException { ISourceRange range = member.getSourceRange(); NodeFinder finder = new NodeFinder(cuNode, range.getOffset(), range.getLength()); return finder.getCoveredNode(); // Note: why we *have* to use getCoveredNode explicitly rather than use the // perform methods defined on NodeFinder. // See BUG 316945: Normally, we have exact positions and covering/covered are the same node. // but in the BUG case we should use the covered node since a JDT bug makes the source range // be too large. }
From source file:org.eclipse.objectteams.otdt.internal.refactoring.otrefactorings.rolefile.MoveToRoleFileRefactoring.java
License:Open Source License
private ASTNode findDeclaration(CompilationUnit unit, ISourceReference source) throws JavaModelException { ISourceRange range = source.getSourceRange(); NodeFinder finder = new NodeFinder(unit, range.getOffset(), range.getLength()); return finder.getCoveredNode(); }
From source file:org.jboss.tools.ws.jaxrs.core.jdt.JdtUtils.java
License:Open Source License
/** * Finds the declaring {@link ASTNode} for the given {@link IMember}, using * the {@link NodeFinder} if the member was not resolved. * /* ww w . j a va2 s.co m*/ * @param member * the member to find * @param ast * the Compilation Unit * @return the associated declaring node * @throws JavaModelException */ private static ASTNode findDeclaringNode(final IMember member, final CompilationUnit ast) throws JavaModelException { switch (member.getElementType()) { case IJavaElement.TYPE: final IType type = (IType) member; if (type.isResolved()) { final ASTNode typeNode = ast.findDeclaringNode(type.getKey()); // return if match found if (typeNode != null) { return typeNode; } } break; case IJavaElement.METHOD: final IMethod method = (IMethod) member; if (method.isResolved()) { final ASTNode methodNode = ast.findDeclaringNode(method.getKey()); // return if match found if (methodNode != null) { return methodNode; } } break; case IJavaElement.FIELD: final IField field = (IField) member; if (field.isResolved()) { // in the case of a Field, the // CompilationUnit#findDeclaringNode(String key) method returns // a VariableDeclarationFragment in a FieldDeclaration final ASTNode variableDeclarationFragment = ast.findDeclaringNode(field.getKey()); if (variableDeclarationFragment != null) { final ASTNode fieldNode = variableDeclarationFragment.getParent(); if (fieldNode != null) { // return if match found return fieldNode; } } } break; default: } // fallback approach if everything above failed. final NodeFinder finder = new NodeFinder(ast, member.getSourceRange().getOffset(), member.getSourceRange().getLength()); return finder.getCoveredNode(); }