/** * Called by helpers when super.transform() is needed. */ final Expression superTransform(Expression expr) { return super.transform(expr); }
@Override public void visitBlockStatement(BlockStatement block) { Set<String> names = new HashSet<String>(varStack.getLast()); varStack.add(names); super.visitBlockStatement(block); varStack.remove(names); }
public void visitClass(ClassNode node, SourceUnit source) { this.currentClass = node; this.source = source; super.visitClass(node); }
public void visitProperty(PropertyNode node) { visitAnnotations(node); Statement statement = node.getGetterBlock(); visitClassCodeContainer(statement); statement = node.getSetterBlock(); visitClassCodeContainer(statement); }
public void visitField(FieldNode node) { visitAnnotations(node); Expression init = node.getInitialExpression(); node.setInitialValueExpression(transform(init)); }
private void newifyMethodOrField(AnnotatedNode parent, boolean autoFlag, ListExpression list, final Pattern cnPattern) { final ListExpression oldClassesToNewify = classesToNewify; final boolean oldAuto = auto; final Pattern oldCnPattern = classNamePattern; checkClassLevelClashes(list); checkAutoClash(autoFlag, parent); classesToNewify = list; auto = autoFlag; classNamePattern = cnPattern; if (parent instanceof FieldNode) { super.visitField((FieldNode) parent); } else { super.visitMethod((MethodNode) parent); } classesToNewify = oldClassesToNewify; auto = oldAuto; classNamePattern = oldCnPattern; }
@Override public void visitMethod(MethodNode node) { Boolean oldInsideScriptBody = insideScriptBody; if (node.isScriptBody()) insideScriptBody = true; super.visitMethod(node); insideScriptBody = oldInsideScriptBody; }
@Override public void visitForLoop(final ForStatement forLoop) { super.visitForLoop(forLoop); trn.visitForLoop(forLoop); }
public void visitField(FieldNode node) { ClassNode t = node.getType(); if(!fieldTypesChecked.contains(node)) { resolveOrFail(t, node); } super.visitField(node); }
@Override public void visitCatchStatement(final CatchStatement statement) { super.visitCatchStatement(statement); trn.visitCatchStatement(statement); }
@Override protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor) { this.currentMethod = node; super.visitConstructorOrMethod(node, isConstructor); this.currentMethod = null; }
@Override public void visitAnnotations(AnnotatedNode node) { boolean oldInAnnotation = inAnnotation; inAnnotation = true; super.visitAnnotations(node); inAnnotation = oldInAnnotation; }
@Override public void visitClassCodeContainer(final Statement code) { super.visitClassCodeContainer(code); }
public void visitField(FieldNode node) { visitAnnotations(node); Expression init = node.getInitialExpression(); node.setInitialValueExpression(transform(init)); }
private void newifyMethodOrField(AnnotatedNode parent, boolean autoFlag, ListExpression list) { final ListExpression oldClassesToNewify = classesToNewify; final boolean oldAuto = auto; checkClassLevelClashes(list); checkAutoClash(autoFlag, parent); classesToNewify = list; auto = autoFlag; if (parent instanceof FieldNode) { super.visitField((FieldNode) parent); } else { super.visitMethod((MethodNode) parent); } classesToNewify = oldClassesToNewify; auto = oldAuto; }
@Override public void visitMethod(MethodNode node) { addVariablesToStack(node.getParameters()); super.visitMethod(node); varStack.removeLast(); }
public void visitProperty(PropertyNode node) { visitAnnotations(node); Statement statement = node.getGetterBlock(); visitClassCodeContainer(statement); statement = node.getSetterBlock(); visitClassCodeContainer(statement); }
public void visitForLoop(ForStatement forLoop) { resolveOrFail(forLoop.getVariableType(), forLoop); super.visitForLoop(forLoop); }
/** * Field initializers are never transformed, but we still need to run the sandbox transformer on them. * @see SandboxTransformer#call */ @Override protected void visitNontransformedField(FieldNode f) { stv.visitField(f); }
@Override public void visitCatchStatement(CatchStatement statement) { varStack.getLast().add(statement.getVariable().getName()); super.visitCatchStatement(statement); varStack.getLast().remove(statement.getVariable().getName()); }