/** * Method to bind the data serialized inside backend <code>ScenarioSimulationModel</code> * @param simulation */ public void bindContent(Simulation simulation) { this.simulation = simulation; checkSimulation(); columnCounter.set(simulation.getSimulationDescriptor().getUnmodifiableFactMappings().size()); }
protected void setHeaderColumns(Simulation simulation) { final List<FactMapping> factMappings = simulation.getSimulationDescriptor().getUnmodifiableFactMappings(); boolean editableHeaders = !simulation.getSimulationDescriptor().getType().equals(ScenarioSimulationModel.Type.DMN); IntStream.range(0, factMappings.size()) .forEach(columnIndex -> { setHeaderColumn(columnIndex, factMappings.get(columnIndex), editableHeaders); }); }
protected SortedMap<String, FactModelTree> getInstanceMap(SortedMap<String, FactModelTree> sourceMap) { SortedMap<String, FactModelTree> toReturn = new TreeMap<>(); // map instance name to base class if (model != null) { final SimulationDescriptor simulationDescriptor = model.getSimulation().getSimulationDescriptor(); simulationDescriptor.getUnmodifiableFactMappings() .stream() .filter(factMapping -> !Objects.equals(FactMappingType.OTHER, factMapping.getExpressionIdentifier().getType())) .forEach(factMapping -> { String dataObjectName = factMapping.getFactIdentifier().getClassName(); if (dataObjectName.contains(".")) { dataObjectName = dataObjectName.substring(dataObjectName.lastIndexOf(".") + 1); } final String instanceName = factMapping.getFactAlias(); if (!instanceName.equals(dataObjectName)) { final FactModelTree factModelTree = sourceMap.get(dataObjectName); if (factModelTree != null) { toReturn.put(instanceName, factModelTree); } } }); } return toReturn; }
public Simulation cloneSimulation() { Simulation toReturn = new Simulation(); toReturn.getSimulationDescriptor().setType(simulationDescriptor.getType()); toReturn.getSimulationDescriptor().setDmnFilePath(simulationDescriptor.getDmnFilePath()); toReturn.getSimulationDescriptor().setDmoSession(simulationDescriptor.getDmoSession()); final List<FactMapping> originalFactMappings = this.simulationDescriptor.getUnmodifiableFactMappings(); for (int i = 0; i < originalFactMappings.size(); i++) { final FactMapping originalFactMapping = originalFactMappings.get(i); toReturn.simulationDescriptor.addFactMapping(i, originalFactMapping); } this.scenarios.forEach(scenario -> toReturn.scenarios.add(scenario.cloneScenario())); return toReturn; }
public Simulation cloneSimulation() { Simulation toReturn = new Simulation(); toReturn.getSimulationDescriptor().setType(simulationDescriptor.getType()); toReturn.getSimulationDescriptor().setDmnFilePath(simulationDescriptor.getDmnFilePath()); toReturn.getSimulationDescriptor().setDmoSession(simulationDescriptor.getDmoSession()); final List<FactMapping> originalFactMappings = this.simulationDescriptor.getUnmodifiableFactMappings(); for (int i = 0; i < originalFactMappings.size(); i++) { final FactMapping originalFactMapping = originalFactMappings.get(i); toReturn.simulationDescriptor.addFactMapping(i, originalFactMapping); } this.scenarios.forEach(scenario -> toReturn.scenarios.add(scenario.cloneScenario())); return toReturn; }
@Test public void removeFactMapping() { FactMapping retrieved = simulationDescriptor.addFactMapping(factIdentifier, expressionIdentifier); assertTrue(simulationDescriptor.getUnmodifiableFactMappings().contains(retrieved)); simulationDescriptor.removeFactMapping(retrieved); assertFalse(simulationDescriptor.getUnmodifiableFactMappings().contains(retrieved)); }
@Test public void removeFactMapping() { FactMapping retrieved = simulationDescriptor.addFactMapping(factIdentifier, expressionIdentifier); assertTrue(simulationDescriptor.getUnmodifiableFactMappings().contains(retrieved)); simulationDescriptor.removeFactMapping(retrieved); assertFalse(simulationDescriptor.getUnmodifiableFactMappings().contains(retrieved)); }
@Override public Function<String, String> from1_2to1_3() { return rawXml -> { ScenarioSimulationXMLPersistence xmlPersistence = ScenarioSimulationXMLPersistence.getInstance(); ScenarioSimulationModel model = xmlPersistence.unmarshal(rawXml, false); for (FactMapping factMapping : model.getSimulation().getSimulationDescriptor().getUnmodifiableFactMappings()) { factMapping.getExpressionElements().add(0, new ExpressionElement(factMapping.getFactIdentifier().getName())); } return xmlPersistence.marshal(model).replaceAll("<ScenarioSimulationModel version=\"1.2\">", "<ScenarioSimulationModel version=\"1.3\">"); }; } }
@Test public void removeFactMappingByIndex() { assertEquals(2, simulation.getUnmodifiableScenarios().get(0).getUnmodifiableFactMappingValues().size()); assertEquals(1, simulation.getSimulationDescriptor().getUnmodifiableFactMappings().size()); simulation.removeFactMappingByIndex(0); assertEquals(1, simulation.getUnmodifiableScenarios().get(0).getUnmodifiableFactMappingValues().size()); assertEquals(0, simulation.getSimulationDescriptor().getUnmodifiableFactMappings().size()); }
@Test public void removeFactMappingByIndex() { assertEquals(2, simulation.getUnmodifiableScenarios().get(0).getUnmodifiableFactMappingValues().size()); assertEquals(1, simulation.getSimulationDescriptor().getUnmodifiableFactMappings().size()); simulation.removeFactMappingByIndex(0); assertEquals(1, simulation.getUnmodifiableScenarios().get(0).getUnmodifiableFactMappingValues().size()); assertEquals(0, simulation.getSimulationDescriptor().getUnmodifiableFactMappings().size()); }
@Test public void removeFactMapping() { assertEquals(2, simulation.getUnmodifiableScenarios().get(0).getUnmodifiableFactMappingValues().size()); assertEquals(1, simulation.getSimulationDescriptor().getUnmodifiableFactMappings().size()); simulation.removeFactMapping(simulation.getSimulationDescriptor().getFactMappingByIndex(0)); assertEquals(1, simulation.getUnmodifiableScenarios().get(0).getUnmodifiableFactMappingValues().size()); assertEquals(0, simulation.getSimulationDescriptor().getUnmodifiableFactMappings().size()); }
@Test public void removeFactMapping() { assertEquals(2, simulation.getUnmodifiableScenarios().get(0).getUnmodifiableFactMappingValues().size()); assertEquals(1, simulation.getSimulationDescriptor().getUnmodifiableFactMappings().size()); simulation.removeFactMapping(simulation.getSimulationDescriptor().getFactMappingByIndex(0)); assertEquals(1, simulation.getUnmodifiableScenarios().get(0).getUnmodifiableFactMappingValues().size()); assertEquals(0, simulation.getSimulationDescriptor().getUnmodifiableFactMappings().size()); }
@Test public void moveFactMappingTest() { ExpressionIdentifier expressionIdentifier2 = ExpressionIdentifier.create("Test expression 2", FactMappingType.GIVEN); ExpressionIdentifier expressionIdentifier3 = ExpressionIdentifier.create("Test expression 3", FactMappingType.GIVEN); FactMapping factMapping1 = simulationDescriptor.addFactMapping(factIdentifier, expressionIdentifier); FactMapping factMapping2 = simulationDescriptor.addFactMapping(factIdentifier, expressionIdentifier2); FactMapping factMapping3 = simulationDescriptor.addFactMapping(factIdentifier, expressionIdentifier3); List<FactMapping> factMappings = simulationDescriptor.getUnmodifiableFactMappings(); assertEquals(factMappings.get(0), factMapping1); assertEquals(factMappings.get(1), factMapping2); assertEquals(factMappings.get(2), factMapping3); simulationDescriptor.moveFactMapping(0, 1); factMappings = simulationDescriptor.getUnmodifiableFactMappings(); assertEquals(factMappings.get(0), factMapping2); assertEquals(factMappings.get(1), factMapping1); assertEquals(factMappings.get(2), factMapping3); simulationDescriptor.moveFactMapping(2, 1); factMappings = simulationDescriptor.getUnmodifiableFactMappings(); assertEquals(factMappings.get(0), factMapping2); assertEquals(factMappings.get(1), factMapping3); assertEquals(factMappings.get(2), factMapping1); simulationDescriptor.moveFactMapping(2, 2); factMappings = simulationDescriptor.getUnmodifiableFactMappings(); assertEquals(factMappings.get(0), factMapping2); assertEquals(factMappings.get(1), factMapping3); assertEquals(factMappings.get(2), factMapping1); }
@Test public void moveFactMappingTest() { ExpressionIdentifier expressionIdentifier2 = ExpressionIdentifier.create("Test expression 2", FactMappingType.GIVEN); ExpressionIdentifier expressionIdentifier3 = ExpressionIdentifier.create("Test expression 3", FactMappingType.GIVEN); FactMapping factMapping1 = simulationDescriptor.addFactMapping(factIdentifier, expressionIdentifier); FactMapping factMapping2 = simulationDescriptor.addFactMapping(factIdentifier, expressionIdentifier2); FactMapping factMapping3 = simulationDescriptor.addFactMapping(factIdentifier, expressionIdentifier3); List<FactMapping> factMappings = simulationDescriptor.getUnmodifiableFactMappings(); assertEquals(factMappings.get(0), factMapping1); assertEquals(factMappings.get(1), factMapping2); assertEquals(factMappings.get(2), factMapping3); simulationDescriptor.moveFactMapping(0, 1); factMappings = simulationDescriptor.getUnmodifiableFactMappings(); assertEquals(factMappings.get(0), factMapping2); assertEquals(factMappings.get(1), factMapping1); assertEquals(factMappings.get(2), factMapping3); simulationDescriptor.moveFactMapping(2, 1); factMappings = simulationDescriptor.getUnmodifiableFactMappings(); assertEquals(factMappings.get(0), factMapping2); assertEquals(factMappings.get(1), factMapping3); assertEquals(factMappings.get(2), factMapping1); simulationDescriptor.moveFactMapping(2, 2); factMappings = simulationDescriptor.getUnmodifiableFactMappings(); assertEquals(factMappings.get(0), factMapping2); assertEquals(factMappings.get(1), factMapping3); assertEquals(factMappings.get(2), factMapping1); }
@Test public void migrateIfNecessary_1_2_to_1_3() throws Exception { String toMigrate = getFileContent("scesim-1-2.scesim"); String migrated = instance.migrateIfNecessary(toMigrate); assertTrue(toMigrate.contains("<ScenarioSimulationModel version=\"1.2\">")); assertFalse(migrated.contains("<ScenarioSimulationModel version=\"1.2\">")); for (FactMapping factMapping : instance.unmarshal(migrated, false).getSimulation().getSimulationDescriptor().getUnmodifiableFactMappings()) { assertTrue(factMapping.getExpressionElements().size() >= 1); } }