private void conditionalReplacer(CtStatement statement) { if (SpoonPredicate.canBeRepairedByChangingCondition(statement)) { if (nopolContext.getOracle() == NopolContext.NopolOracle.ANGELIC) { nopolProcessors.add(new ConditionalReplacer(statement)); } else if (nopolContext.getOracle() == NopolContext.NopolOracle.SYMBOLIC) { nopolProcessors.add(new SymbolicConditionalReplacer(statement)); } } }
private void preconditionalReplacer(CtStatement statement) { if (SpoonPredicate.canBeRepairedByAddingPrecondition(statement)) { if (nopolContext.getOracle() == NopolContext.NopolOracle.ANGELIC) { nopolProcessors.add(new ConditionalAdder(statement)); } else if (nopolContext.getOracle() == NopolContext.NopolOracle.SYMBOLIC) { nopolProcessors.add(new SymbolicConditionalAdder(statement)); } } }
private void symbolicReplacer(CtStatement statement) { RepairType typeToAnalyse = nopolContext.getType(); if (nopolContext.getOracle() == NopolContext.NopolOracle.SYMBOLIC) { nopolProcessors.add(new LiteralReplacer(typeToAnalyse.getType(), statement, typeToAnalyse)); } }
private static InstrumentedProgram getInstrumentedProgramForThisLocation(SpoonedProject spooner, NopolContext nopolContext, NopolProcessor nopolProcessor, SourceLocation statement, SpoonedFile spoonCl) { if (Boolean.class.equals(nopolContext.getType().getType())) { RuntimeValues<Boolean> runtimeValuesInstance = RuntimeValues.newInstance(); switch (nopolContext.getOracle()) { case ANGELIC: return new ConstraintModelBuilder(runtimeValuesInstance, statement, new ConditionalLoggingInstrumenter(runtimeValuesInstance, nopolProcessor), spooner, nopolContext); case SYMBOLIC: return new JPFRunner<>(runtimeValuesInstance, statement, nopolProcessor, spoonCl, spooner, nopolContext); } } throw new UnsupportedOperationException(); // OLD CODE, TO BE RESTORED // if (Integer.class.equals(type)) { // RuntimeValues<Integer> runtimeValuesInstance = RuntimeValues.newInstance(); // constraintModelBuilder = new JPFRunner<>(runtimeValuesInstance, statement, nopolProcessor, spoonCl, spooner, nopolContext); // return new SMTNopolSynthesizer<>(spooner, constraintModelBuilder, statement, nopolContext.getType(), nopolProcessor, nopolContext); // } // if (Double.class.equals(type)) { // RuntimeValues<Double> runtimeValuesInstance = RuntimeValues.newInstance(); // constraintModelBuilder = new JPFRunner<>(runtimeValuesInstance, statement, nopolProcessor, spoonCl, spooner, nopolContext); // return new SMTNopolSynthesizer<>(spooner, constraintModelBuilder, statement, nopolContext.getType(), nopolProcessor, nopolContext); // } }
if (nopolContext.getOracle() == NopolContext.NopolOracle.SYMBOLIC) { try { SpoonedProject jpfSpoon = new SpoonedProject(this.sourceFiles, nopolContext);