public static Dependency findDependency(String dependencyId, List<Dependency> dependencies) { for (Dependency dependency : dependencies) { if (dependency.getId().equalsIgnoreCase(dependencyId)) { return dependency; } } throw new IllegalArgumentException( "Unable to find dependency with id " + dependencyId + " in " + dependencies); }
private NewChaseSteps applyRepairs( DeltaChaseStep currentNode, List<Repair> repairs, Dependency egd, Scenario scenario) { if (logger.isDebugEnabled()) logger.debug("---Applying repairs..."); NewChaseSteps newChaseSteps = new NewChaseSteps(egd); for (int i = 0; i < repairs.size(); i++) { Repair repair = repairs.get(i); boolean consistentRepair = purgeOverlappingContexts(egd, repair, currentNode.getAffectedAttributesInAncestors()); try { CellGroupUtility.checkCellGroupConsistency(repair); } catch (ChaseException ex) { // TODO++ IExportSolution solutionExporter = OperatorFactory.getInstance().getSolutionExporter(scenario); solutionExporter.export(currentNode, "error", scenario); throw ex; } String egdId = egd.getId(); String localId = ChaseUtility.generateChaseStepIdForEGDs(egdId, i, repair); DeltaChaseStep newStep = new DeltaChaseStep(scenario, currentNode, localId, egd, repair, repair.getChaseModes()); for (ChangeDescription changeSet : repair.getChangeDescriptions()) { this.cellChanger.changeCells( changeSet.getCellGroup(), newStep.getDeltaDB(), newStep.getId(), scenario); } if (consistentRepair) { if (logger.isDebugEnabled()) logger.debug("EGD " + egd.getId() + " is satisfied in this step..."); newStep.addSatisfiedEGD(egd); } newStep.setAffectedAttributesInNode(ChaseUtility.extractAffectedAttributes(repair)); newStep.setAffectedAttributesInAncestors( ChaseUtility.findChangedAttributesInAncestors(newStep)); if (logger.isDebugEnabled()) logger.debug("Generated step " + newStep.getId() + " for repair: " + repair); newChaseSteps.addChaseStep(newStep); } this.cellChanger.flush(currentNode.getDeltaDB()); if (repairs.isEmpty()) { newChaseSteps.setNoRepairsNeeded(true); } return newChaseSteps; }
public static String buildTableNameForConstants(Dependency dependency, boolean premise) { String suffix = (premise ? "prem" : "conc"); return "c_in_" + dependency.getId() + "_" + suffix; }