List<CtVariable> varMatched = new ArrayList<>(); try { CtTypeReference typeToFind = vartofind.getType();
@Override public <T> void visitCtVariableAccess(CtVariableAccess<T> variableAccess) { enter(variableAccess); scan(variableAccess.getAnnotations()); scan(variableAccess.getType()); scanReferences(variableAccess.getTypeCasts()); scan(variableAccess.getVariable()); exit(variableAccess); }
@Override public List<VarLiPlaceholder> createTOS(T ingredientStatement) { List<VarLiPlaceholder> results = new ArrayList<>(); List<CtVariableAccess> varAccessCollected = VariableResolver.collectVariableAccess(ingredientStatement, true); for (CtVariableAccess ctVariableAccess : varAccessCollected) { int i = 0; if (ctVariableAccess instanceof CtVariableRead) { if (!(ctVariableAccess instanceof CtFieldRead) || !((CtFieldReference) ctVariableAccess.getVariable()).isStatic()) { VarLiPlaceholder pc = new VarLiPlaceholder(ctVariableAccess, "_lit_" + ctVariableAccess.getType().getSimpleName() + "_" + i); results.add(pc); } } } return results; }
public List<Transformation> process(ModificationPoint modificationPoint, VarLiPlaceholder varLiPlaceholder) { List<Transformation> transformation = new ArrayList<>(); List<Ingredient> ingredients = getSpace(modificationPoint.getProgramVariant()) .getIngredients(modificationPoint.getCodeElement()); logger.debug("Ingredients lit (" + ingredients.size() + ") " + ingredients); for (Ingredient ctCodeElement : ingredients) { CtLiteral literal4Space = (CtLiteral) ctCodeElement.getCode(); if (literal4Space.getType().isSubtypeOf(varLiPlaceholder.getAffectedVariable().getType())) { Transformation t = new VarLiTransformation(varLiPlaceholder, varLiPlaceholder.getAffectedVariable(), literal4Space.clone()); transformation.add(t); } } return transformation; }
CtTypeReference refOut = varOutScope.getType();
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public List<OperatorInstance> createOperatorInstances(ModificationPoint modificationPoint) { List<OperatorInstance> instances = new ArrayList<>(); List<CtVariableAccess> varAccess = VariableResolver.collectVariableAccess(modificationPoint.getCodeElement()); for (CtVariableAccess iVariableAccess : varAccess) { if (!iVariableAccess.getType().isPrimitive()) { CtIf precodition = MutationSupporter.factory.createIf(); CtExpression ifcondition = MutationSupporter.factory.createBinaryOperator(iVariableAccess, MutationSupporter.factory.createCodeSnippetExpression("null").compile(), BinaryOperatorKind.NE); precodition.setCondition(ifcondition); precodition.setThenStatement((CtStatement) modificationPoint.getCodeElement().clone()); OperatorInstance operatorInstance = new StatementOperatorInstance(modificationPoint, this, precodition); instances.add(operatorInstance); } } return instances; };
CtTypeReference<T> reference = variableAccess.getType(); if ((parameterNames != null) && (reference != null) && parameterNames.contains(reference.getSimpleName() )) {
CtTypeReference returnType = variableAccessToReplace.getType();// MutationSupporter.getFactory().createCtTypeReference(Boolean.class); for (CtVariableAccess ctVariableAccess : varsToBeParameters) { CtParameter pari = MutationSupporter.getFactory().createParameter(null, ctVariableAccess.getType(), ctVariableAccess.getVariable().getSimpleName()); parameters.add(pari);
for (CtVariableAccess ctVariableAccess : varsToBeParameters) { CtParameter pari = MutationSupporter.getFactory().createParameter(null, ctVariableAccess.getType(), ctVariableAccess.getVariable().getSimpleName()); parameters.add(pari);
for (CtVariableAccess ctVariableAccess : varsToBeParameters) { CtParameter pari = MutationSupporter.getFactory().createParameter(null, ctVariableAccess.getType(), ctVariableAccess.getVariable().getSimpleName()); parameters.add(pari);
for (CtVariableAccess ctVariableAccess : varsToBeParameters) { CtParameter pari = MutationSupporter.getFactory().createParameter(null, ctVariableAccess.getType(), ctVariableAccess.getVariable().getSimpleName()); parameters.add(pari);
for (CtVariableAccess ctVariableAccess : varsToBeParameters) { CtParameter pari = MutationSupporter.getFactory().createParameter(null, ctVariableAccess.getType(), ctVariableAccess.getVariable().getSimpleName()); parameters.add(pari);
for (CtVariableAccess ctVariableAccess : varsToBeParameters) { CtParameter pari = MutationSupporter.getFactory().createParameter(null, ctVariableAccess.getType(), ctVariableAccess.getVariable().getSimpleName()); parameters.add(pari);