@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public List<OperatorInstance> createOperatorInstances(ModificationPoint modificationPoint) { List<OperatorInstance> instances = new ArrayList<>(); CtInvocation invocation = (CtInvocation) modificationPoint.getCodeElement(); CtExpression targetExpresionOfMI = invocation.getTarget(); if (targetExpresionOfMI instanceof CtVariableAccess) { CtStatement parentStatement = modificationPoint.getCodeElement().getParent(CtStatement.class); CtExpression ifcondition = MutationSupporter.factory.createBinaryOperator(targetExpresionOfMI, MutationSupporter.factory.createCodeSnippetExpression("null").compile(), BinaryOperatorKind.NE); CtIf precodition = MutationSupporter.factory.createIf(); precodition.setCondition(ifcondition); precodition.setThenStatement(parentStatement); OperatorInstance operatorInstance = new StatementOperatorInstance(modificationPoint, this, parentStatement, precodition); instances.add(operatorInstance); } return instances; };
@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; };