@Override public void apply() { previousVariable.replace(newLiteral); }
/** * For each modified variable, it resets the variables by putting their original * var reference * * @param varMapping * @param original */ public static void resetIngredient(Map<VarAccessWrapper, CtVariableAccess> old) { for (VarAccessWrapper newa : old.keySet()) { newa.getVar().replace(old.get(newa)); } }
pr, ctVariable.getModifiers().contains(ModifierKind.STATIC)); ctVariableAccess.replace(vr); } else if (ctVariable instanceof CtLocalVariable) { CtLocalVariableReference pr = MutationSupporter.getFactory() CtVariableRead vr = (CtVariableRead) MutationSupporter.getFactory().createVariableRead( pr, ctVariable.getModifiers().contains(ModifierKind.STATIC)); ctVariableAccess.replace(vr);
return element.getVariable().getDeclaration().equals(catches.get(0).getParameter()) && super.matches(element); }).forEach(variableAccess -> variableAccess.replace(spoon.getFactory().createVariableRead(catchVariable.getReference(), false)));
originalVarAccessDestination.replace(newVarAccessDestination); } else { logger.error("No destination resolved");
@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); }