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; }
@Override public void populateRightPanel(final RightPanelView.Presenter rightPanelPresenter, final ScenarioGridModel scenarioGridModel) { String dmnFilePath = model.getSimulation().getSimulationDescriptor().getDmnFilePath(); if(factModelTreeHolder.getFactModelTuple() != null) { getSuccessCallback(rightPanelPresenter).callback(factModelTreeHolder.getFactModelTuple()); } else { dmnTypeService.call(getSuccessCallback(rightPanelPresenter), getErrorCallback(rightPanelPresenter)) .retrieveType(currentPath, dmnFilePath); } }
@Override public RequestContext executeScenario(KieContainer kieContainer, ScenarioRunnerData scenarioRunnerData, ExpressionEvaluator expressionEvaluator, SimulationDescriptor simulationDescriptor) { if (!ScenarioSimulationModel.Type.DMN.equals(simulationDescriptor.getType())) { throw new ScenarioException("Impossible to run a not-DMN simulation with DMN runner"); } DMNScenarioExecutableBuilder executableBuilder = DMNScenarioExecutableBuilder.createBuilder(kieContainer); executableBuilder.setActiveModel(simulationDescriptor.getDmnFilePath()); for (ScenarioGiven input : scenarioRunnerData.getGivens()) { executableBuilder.setValue(input.getFactIdentifier().getName(), input.getValue()); } return executableBuilder.run(); }
@Test public void unmarshalDMN() throws Exception { String toUnmarshal = getFileContent("scesim-dmn.scesim"); final ScenarioSimulationModel retrieved = ScenarioSimulationXMLPersistence.getInstance().unmarshal(toUnmarshal); assertEquals(retrieved.getSimulation().getSimulationDescriptor().getType(), ScenarioSimulationModel.Type.DMN); assertNotNull(retrieved.getSimulation().getSimulationDescriptor().getDmnFilePath()); assertNull(retrieved.getSimulation().getSimulationDescriptor().getDmoSession()); }
@Test public void unmarshalRULE() throws Exception { String toUnmarshal = getFileContent("scesim-rule.scesim"); final ScenarioSimulationModel retrieved = ScenarioSimulationXMLPersistence.getInstance().unmarshal(toUnmarshal); assertEquals(retrieved.getSimulation().getSimulationDescriptor().getType(), ScenarioSimulationModel.Type.RULE); assertNotNull(retrieved.getSimulation().getSimulationDescriptor().getDmoSession()); assertNull(retrieved.getSimulation().getSimulationDescriptor().getDmnFilePath()); }