private void symbolicReplacer(CtStatement statement) { RepairType typeToAnalyse = nopolContext.getType(); if (nopolContext.getOracle() == NopolContext.NopolOracle.SYMBOLIC) { nopolProcessors.add(new LiteralReplacer(typeToAnalyse.getType(), statement, typeToAnalyse)); } }
public NoPol(NopolContext nopolContext) { this.startTime = System.currentTimeMillis(); this.nopolContext = nopolContext; this.classpath = nopolContext.getProjectClasspath(); this.sourceFiles = nopolContext.getProjectSources(); this.nopolResult = new NopolResult(nopolContext, this.startTime); RepairType type = nopolContext.getType(); logger.info("Source files: " + Arrays.toString(sourceFiles)); logger.info("Classpath: " + Arrays.toString(classpath)); logger.info("Statement type: " + type); logger.info("Args: " + Arrays.toString(nopolContext.getProjectTests())); logger.info("Config: " + nopolContext); this.logSystemInformation(); this.spooner = new SpoonedProject(this.sourceFiles, nopolContext); this.testClasses = nopolContext.getProjectTests(); this.testPatch = new TestPatch(this.sourceFiles[0], this.spooner, nopolContext); }
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); // } }
switch (nopolContext.getType()) { case LOOP: Infinitel infinitel = new Infinitel(nopolContext);
public static Synthesizer build(final File[] sourceFolders, final SpoonedProject spooner, NopolContext nopolContext, final SourceLocation statement, NopolProcessor nopolProcessor, SpoonedClass spoonCl) { nbStatementsAnalysed++; Class<?> type = nopolContext.getType().getType(); switch (nopolContext.getSynthesis()) { case SMT: //InstrumentedProgram program = getInstrumentedProgramForThisLocation(nopolProcessor, sourceLocation, spooner); return new SMTNopolSynthesizer(spooner, getInstrumentedProgramForThisLocation(spooner, nopolContext, nopolProcessor, statement, spoonCl), statement, nopolProcessor.getRepairType(), nopolProcessor, nopolContext); case DYNAMOTH: return new DynamothSynthesizer(sourceFolders, statement, nopolProcessor.getRepairType(), nopolProcessor, spooner, nopolContext); } return Synthesizer.NO_OP_SYNTHESIZER; }
@Override public void process(CtStatement statement) { RepairType typeToAnalyse = nopolContext.getType();