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; }
public void visitCtForEach(CtForEach foreach) { setResult(foreach.getFactory().Core().clone(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); }