public void visitCtForEach(final spoon.reflect.code.CtForEach foreach) { spoon.reflect.code.CtForEach aCtForEach = foreach.getFactory().Core().createForEach(); this.builder.copy(foreach, aCtForEach); aCtForEach.setAnnotations(this.cloneHelper.clone(foreach.getAnnotations())); aCtForEach.setVariable(this.cloneHelper.clone(foreach.getVariable())); aCtForEach.setExpression(this.cloneHelper.clone(foreach.getExpression())); aCtForEach.setBody(this.cloneHelper.clone(foreach.getBody())); aCtForEach.setComments(this.cloneHelper.clone(foreach.getComments())); this.cloneHelper.tailor(foreach, aCtForEach); this.other = aCtForEach; }
@Override public CtForEach createForEach() { CtForEach e = new CtForEachImpl(); e.setFactory(getMainFactory()); return e; }
@Override public void visitCtForEach(CtForEach foreach) { if (foreach.getVariable() == null && child instanceof CtVariable) { foreach.setVariable((CtLocalVariable<?>) child); return; } else if (foreach.getExpression() == null && child instanceof CtExpression) { foreach.setExpression((CtExpression<?>) child); return; } super.visitCtForEach(foreach); }
public void visitCtForEach(final spoon.reflect.code.CtForEach foreach) { spoon.reflect.code.CtForEach other = ((spoon.reflect.code.CtForEach) (this.stack.peek())); enter(foreach); biScan(spoon.reflect.path.CtRole.ANNOTATION, foreach.getAnnotations(), other.getAnnotations()); biScan(spoon.reflect.path.CtRole.FOREACH_VARIABLE, foreach.getVariable(), other.getVariable()); biScan(spoon.reflect.path.CtRole.EXPRESSION, foreach.getExpression(), other.getExpression()); biScan(spoon.reflect.path.CtRole.BODY, foreach.getBody(), other.getBody()); biScan(spoon.reflect.path.CtRole.COMMENT, foreach.getComments(), other.getComments()); exit(foreach); }
@Override public void visitCtForEach(CtForEach foreach) { enterCtStatement(foreach); printer.writeKeyword("for").writeSpace().writeSeparator("("); scan(foreach.getVariable()); printer.writeSpace().writeSeparator(":").writeSpace(); scan(foreach.getExpression()); printer.writeSeparator(")"); elementPrinterHelper.writeIfOrLoopBlock(foreach.getBody()); exitCtStatement(foreach); }
@Override public void visitCtForEach(CtForEach foreach) { if (foreach.getExpression() instanceof CtFieldAccess) { CtFieldAccess<?> fa = (CtFieldAccess<?>) foreach.getExpression(); if (Parameters.isParameterSource(fa.getVariable())) { Object[] value = (Object[]) Parameters.getValue(template, fa.getVariable().getSimpleName(), null); CtBlock<?> l = foreach.getFactory().Core().createBlock(); CtStatement body = foreach.getBody(); for (Object element : value) { CtStatement b = foreach.getFactory().Core().clone(body); for (CtVariableAccess<?> va : Query.getElements(b, new VariableAccessFilter<CtVariableAccess<?>>(foreach.getVariable().getReference()))) { va.replace((CtExpression) element); } l.addStatement(b); } foreach.replace(l); throw new SkipException(foreach); } } super.visitCtForEach(foreach); }
@Override public <T> void generateInlineTargets(DefaultGenerator generator, ResultHolder<T> result, ImmutableMap parameters) { Factory f = generator.getFactory(); CtForEach forEach = f.Core().createForEach(); forEach.setVariable(f.Code().createLocalVariable(f.Type().objectType(), localParameter.getName(), null)); forEach.setExpression(generator.generateSingleTarget(iterableParameter, parameters, CtExpression.class)); CtBlock<?> body = f.createBlock(); body.setStatements(generator.generateTargets(nestedModel, parameters, CtStatement.class)); forEach.setBody(body); result.addResult((T) forEach); } }
@Override public void visitCtForEach(CtForEach foreach) { super.visitCtForEach(foreach); @SuppressWarnings("rawtypes") CtExpression exper=foreach.getExpression(); if (candidates.containsKey(exper)) { foreach.setExpression(candidates.get(exper)); saveSketchAndSynthesize(); foreach.setExpression(exper); resoreDiskFile(); } }
RootNode vr = patternBuilder.getPatternNode(foreach.getExpression()); if ((vr instanceof PrimitiveMatcher) == false) { throw new SpoonException("Each inline `for(x : iterable)` statement must have defined pattern parameter for `iterable` expression"); ForEachNode mvr = new ForEachNode(); mvr.setIterableParameter(parameterOfExpression); CtLocalVariable<?> lv = foreach.getVariable();
@java.lang.Override public void set(spoon.reflect.code.CtExpression replace) { this.element.setExpression(replace); } }
@SuppressWarnings("unchecked") @Override public <T, U> U getValue(T element) { return ((U) ((Object) (castTarget(element).getExpression()))); }
@java.lang.Override public void set(spoon.reflect.code.CtLocalVariable replace) { this.element.setVariable(replace); } }
@SuppressWarnings("unchecked") @Override public <T, U> U getValue(T element) { return ((U) ((Object) (castTarget(element).getVariable()))); }
public void visitCtForEach(CtForEach foreach) { setResult(foreach.getFactory().Core().clone(foreach)); }
public void visitCtForEach(final CtForEach foreach) { enter(foreach); scan(CtRole.ANNOTATION, foreach.getAnnotations()); scan(CtRole.FOREACH_VARIABLE, foreach.getVariable()); scan(CtRole.EXPRESSION, foreach.getExpression()); scan(CtRole.BODY, foreach.getBody()); scan(CtRole.COMMENT, foreach.getComments()); exit(foreach); }
@Override public void visitCtForEach(CtForEach foreach) { if (foreach.getVariable() == null && child instanceof CtVariable) { foreach.setVariable((CtLocalVariable<?>) child); return; } else if (foreach.getExpression() == null && child instanceof CtExpression) { foreach.setExpression((CtExpression<?>) child); return; } else if (child instanceof CtStatement) { foreach.setBody((CtStatement) child); return; } super.visitCtForEach(foreach); }
public void visitCtForEach(CtForEach foreach) { write("for ("); scan(foreach.getVariable()); write(":"); scan(foreach.getExpression()); write(")"); scan(foreach.getBody()); }
@Override public <T, U> void setValue(T element, U value) { castTarget(element).setExpression(castValue(value)); } }
@Override public <T, U> void setValue(T element, U value) { castTarget(element).setVariable(castValue(value)); } }
@java.lang.Override public void visitCtForEach(final spoon.reflect.code.CtForEach foreach) { replaceInListIfExist(foreach.getAnnotations(), new spoon.support.visitor.replace.ReplacementVisitor.CtElementAnnotationsReplaceListener(foreach)); replaceElementIfExist(foreach.getVariable(), new spoon.support.visitor.replace.ReplacementVisitor.CtForEachVariableReplaceListener(foreach)); replaceElementIfExist(foreach.getExpression(), new spoon.support.visitor.replace.ReplacementVisitor.CtForEachExpressionReplaceListener(foreach)); replaceElementIfExist(foreach.getBody(), new spoon.support.visitor.replace.ReplacementVisitor.CtLoopBodyReplaceListener(foreach)); replaceInListIfExist(foreach.getComments(), new spoon.support.visitor.replace.ReplacementVisitor.CtElementCommentsReplaceListener(foreach)); }