private boolean insideLoop(AbstractNode node) { Node n = node.jjtGetParent(); while (n != null) { if (n instanceof ASTDoLoopStatement || n instanceof ASTWhileLoopStatement || n instanceof ASTForLoopStatement || n instanceof ASTForEachStatement) { return true; } n = n.jjtGetParent(); } return false; } }
@Override public <T> T getFirstParentOfType(Class<T> parentType) { Node parentNode = jjtGetParent(); while (parentNode != null && !parentType.isInstance(parentNode)) { parentNode = parentNode.jjtGetParent(); } return parentType.cast(parentNode); }
@Override public <T> List<T> getParentsOfType(Class<T> parentType) { List<T> parents = new ArrayList<>(); Node parentNode = jjtGetParent(); while (parentNode != null) { if (parentType.isInstance(parentNode)) { parents.add(parentType.cast(parentNode)); } parentNode = parentNode.jjtGetParent(); } return parents; }
@Override public Node getNthParent(int n) { if (n <= 0) { throw new IllegalArgumentException(); } Node result = this.jjtGetParent(); for (int i = 1; i < n; i++) { if (result == null) { return null; } result = result.jjtGetParent(); } return result; }
@SafeVarargs @Override public final <T> T getFirstParentOfAnyType(Class<? extends T>... parentTypes) { Node parentNode = jjtGetParent(); while (parentNode != null) { for (Class<? extends T> c : parentTypes) { if (c.isInstance(parentNode)) { return c.cast(parentNode); } } parentNode = parentNode.jjtGetParent(); } return null; }
@Override public void remove() { // Detach current node of its parent, if any final Node parent = jjtGetParent(); if (parent != null) { parent.removeChildAtIndex(jjtGetChildIndex()); jjtSetParent(null); } // TODO [autofix]: Notify action for handling text edition }
@Override public <T> List<T> getParentsOfType(Class<T> parentType) { List<T> parents = new ArrayList<>(); Node parentNode = jjtGetParent(); while (parentNode != null) { if (parentType.isInstance(parentNode)) { parents.add(parentType.cast(parentNode)); } parentNode = parentNode.jjtGetParent(); } return parents; }
private boolean insideLoop(AbstractNode node) { Node n = node.jjtGetParent(); while (n != null) { if (n instanceof ASTDoLoopStatement || n instanceof ASTWhileLoopStatement || n instanceof ASTForLoopStatement || n instanceof ASTForEachStatement) { return true; } n = n.jjtGetParent(); } return false; } }
@Override public <T> T getFirstParentOfType(Class<T> parentType) { Node parentNode = jjtGetParent(); while (parentNode != null && !parentType.isInstance(parentNode)) { parentNode = parentNode.jjtGetParent(); } return parentType.cast(parentNode); }
@Override public Node getNthParent(int n) { if (n <= 0) { throw new IllegalArgumentException(); } Node result = this.jjtGetParent(); for (int i = 1; i < n; i++) { if (result == null) { return null; } result = result.jjtGetParent(); } return result; }
@SafeVarargs @Override public final <T> T getFirstParentOfAnyType(Class<? extends T>... parentTypes) { Node parentNode = jjtGetParent(); while (parentNode != null) { for (Class<? extends T> c : parentTypes) { if (c.isInstance(parentNode)) { return c.cast(parentNode); } } parentNode = parentNode.jjtGetParent(); } return null; }
@Override public void remove() { // Detach current node of its parent, if any final Node parent = jjtGetParent(); if (parent != null) { parent.removeChildAtIndex(jjtGetChildIndex()); jjtSetParent(null); } // TODO [autofix]: Notify action for handling text edition }