Search in sources :

Example 1 with Scenario

use of bpsim.Scenario in project kie-wb-common by kiegroup.

the class Bpmn2JsonUnmarshaller method addSimulation.

public void addSimulation(Definitions def) {
    Relationship relationship = Bpmn2Factory.eINSTANCE.createRelationship();
    relationship.getSources().add(def);
    relationship.getTargets().add(def);
    relationship.setType(defaultRelationshipType);
    BPSimDataType simDataType = BpsimFactory.eINSTANCE.createBPSimDataType();
    // currently support single scenario
    Scenario defaultScenario = BpsimFactory.eINSTANCE.createScenario();
    // single scenario suppoert
    defaultScenario.setId("default");
    // single scenario support
    defaultScenario.setName("Simulationscenario");
    defaultScenario.setScenarioParameters(_simulationScenarioParameters);
    if (_simulationElementParameters.size() > 0) {
        Iterator<String> iter = _simulationElementParameters.keySet().iterator();
        while (iter.hasNext()) {
            String key = iter.next();
            ElementParameters etype = BpsimFactory.eINSTANCE.createElementParameters();
            etype.setElementRef(key);
            List<EObject> params = _simulationElementParameters.get(key);
            for (EObject np : params) {
                if (np instanceof ControlParameters) {
                    etype.setControlParameters((ControlParameters) np);
                } else if (np instanceof CostParameters) {
                    etype.setCostParameters((CostParameters) np);
                } else if (np instanceof PriorityParameters) {
                    etype.setPriorityParameters((PriorityParameters) np);
                } else if (np instanceof ResourceParameters) {
                    etype.setResourceParameters((ResourceParameters) np);
                } else if (np instanceof TimeParameters) {
                    etype.setTimeParameters((TimeParameters) np);
                }
            }
            defaultScenario.getElementParameters().add(etype);
        }
    }
    simDataType.getScenario().add(defaultScenario);
    ExtensionAttributeValue extensionElement = Bpmn2Factory.eINSTANCE.createExtensionAttributeValue();
    relationship.getExtensionValues().add(extensionElement);
    FeatureMap.Entry extensionElementEntry = new SimpleFeatureMapEntry((Internal) BpsimPackage.Literals.DOCUMENT_ROOT__BP_SIM_DATA, simDataType);
    relationship.getExtensionValues().get(0).getValue().add(extensionElementEntry);
    def.getRelationships().add(relationship);
}
Also used : CostParameters(bpsim.CostParameters) ElementParameters(bpsim.ElementParameters) ExtensionAttributeValue(org.eclipse.bpmn2.ExtensionAttributeValue) ResourceParameters(bpsim.ResourceParameters) Scenario(bpsim.Scenario) FeatureMap(org.eclipse.emf.ecore.util.FeatureMap) Relationship(org.eclipse.bpmn2.Relationship) EObject(org.eclipse.emf.ecore.EObject) ControlParameters(bpsim.ControlParameters) SimpleFeatureMapEntry(org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.SimpleFeatureMapEntry) PriorityParameters(bpsim.PriorityParameters) BPSimDataType(bpsim.BPSimDataType) TimeParameters(bpsim.TimeParameters)

Example 2 with Scenario

use of bpsim.Scenario in project kie-wb-common by kiegroup.

the class DefinitionResolver method initSimulationParameters.

private Map<String, ElementParameters> initSimulationParameters(Definitions definitions) {
    Map<String, ElementParameters> simulationParameters = new HashMap<>();
    List<Relationship> relationships = definitions.getRelationships();
    if (relationships.isEmpty()) {
        return Collections.emptyMap();
    }
    FeatureMap value = relationships.get(0).getExtensionValues().get(0).getValue();
    Object simData = value.get(BpsimPackage.Literals.DOCUMENT_ROOT__BP_SIM_DATA, true);
    List<BPSimDataType> bpsimExtensions = (List<BPSimDataType>) simData;
    Scenario scenario = bpsimExtensions.get(0).getScenario().get(0);
    for (ElementParameters parameters : scenario.getElementParameters()) {
        simulationParameters.put(parameters.getElementRef(), parameters);
    }
    return simulationParameters;
}
Also used : FeatureMap(org.eclipse.emf.ecore.util.FeatureMap) ElementParameters(bpsim.ElementParameters) HashMap(java.util.HashMap) Relationship(org.eclipse.bpmn2.Relationship) List(java.util.List) BPSimDataType(bpsim.BPSimDataType) Scenario(bpsim.Scenario)

Example 3 with Scenario

use of bpsim.Scenario in project kie-wb-common by kiegroup.

the class ProcessPropertyWriter method getRelationship.

public Relationship getRelationship() {
    Relationship relationship = bpmn2.createRelationship();
    relationship.setType(defaultRelationshipType);
    BPSimDataType simDataType = bpsim.createBPSimDataType();
    // currently support single scenario
    Scenario defaultScenario = bpsim.createScenario();
    ScenarioParameters scenarioParameters = bpsim.createScenarioParameters();
    // single scenario suppoert
    defaultScenario.setId("default");
    // single scenario support
    defaultScenario.setName("Simulationscenario");
    defaultScenario.setScenarioParameters(scenarioParameters);
    simDataType.getScenario().add(defaultScenario);
    ExtensionAttributeValue extensionElement = bpmn2.createExtensionAttributeValue();
    relationship.getExtensionValues().add(extensionElement);
    FeatureMap.Entry extensionElementEntry = new EStructuralFeatureImpl.SimpleFeatureMapEntry((EStructuralFeature.Internal) BpsimPackage.Literals.DOCUMENT_ROOT__BP_SIM_DATA, simDataType);
    relationship.getExtensionValues().get(0).getValue().add(extensionElementEntry);
    defaultScenario.getElementParameters().addAll(simulationParameters);
    return relationship;
}
Also used : FeatureMap(org.eclipse.emf.ecore.util.FeatureMap) Relationship(org.eclipse.bpmn2.Relationship) EStructuralFeature(org.eclipse.emf.ecore.EStructuralFeature) ScenarioParameters(bpsim.ScenarioParameters) ExtensionAttributeValue(org.eclipse.bpmn2.ExtensionAttributeValue) BPSimDataType(bpsim.BPSimDataType) Scenario(bpsim.Scenario)

Example 4 with Scenario

use of bpsim.Scenario in project jbpm by kiegroup.

the class BpsimTest method testBpsimData.

@SuppressWarnings("unchecked")
public void testBpsimData() throws Exception {
    // write
    XMLResource inResource = (XMLResource) resourceSet.createResource(URI.createURI("inputStream://dummyUriWithValidSuffix.xml"));
    inResource.getDefaultLoadOptions().put(XMLResource.OPTION_ENCODING, "UTF-8");
    inResource.setEncoding("UTF-8");
    DocumentRoot documentRoot = BpsimFactory.eINSTANCE.createDocumentRoot();
    BPSimDataType bpsimData = BpsimFactory.eINSTANCE.createBPSimDataType();
    Scenario defaultScenario = BpsimFactory.eINSTANCE.createScenario();
    defaultScenario.setId("default");
    defaultScenario.setName("Scenario");
    ScenarioParameters scenarioParams = BpsimFactory.eINSTANCE.createScenarioParameters();
    scenarioParams.setBaseTimeUnit(TimeUnit.S);
    defaultScenario.setScenarioParameters(scenarioParams);
    ElementParameters elementParams = BpsimFactory.eINSTANCE.createElementParameters();
    TimeParameters elementTimeParams = BpsimFactory.eINSTANCE.createTimeParameters();
    Parameter processingTimeParameter = BpsimFactory.eINSTANCE.createParameter();
    UniformDistributionType uniformDistrobutionType = BpsimFactory.eINSTANCE.createUniformDistributionType();
    uniformDistrobutionType.setMin(180.0);
    uniformDistrobutionType.setMax(600.0);
    processingTimeParameter.getParameterValue().add(uniformDistrobutionType);
    elementTimeParams.setProcessingTime(processingTimeParameter);
    elementParams.setTimeParameters(elementTimeParams);
    defaultScenario.getElementParameters().add(elementParams);
    bpsimData.getScenario().add(defaultScenario);
    documentRoot.setBPSimData(bpsimData);
    inResource.getContents().add(documentRoot);
    StringWriter stringWriter = new StringWriter();
    inResource.save(stringWriter, null);
    assertNotNull(stringWriter.getBuffer().toString());
    if (stringWriter.getBuffer().toString().length() < 1) {
        fail("generated xml is empty");
    }
    // read
    XMLResource outResource = (XMLResource) resourceSet.createResource(URI.createURI("inputStream://dummyUriWithValidSuffix.xml"));
    outResource.getDefaultLoadOptions().put(XMLResource.OPTION_ENCODING, "UTF-8");
    outResource.setEncoding("UTF-8");
    Map<String, Object> options = new HashMap<String, Object>();
    options.put(XMLResource.OPTION_ENCODING, "UTF-8");
    InputStream is = new ByteArrayInputStream(stringWriter.getBuffer().toString().getBytes("UTF-8"));
    outResource.load(is, options);
    DocumentRoot outRoot = (DocumentRoot) outResource.getContents().get(0);
    assertNotNull(outRoot.getBPSimData());
    BPSimDataType outAnalysisData = outRoot.getBPSimData();
    assertEquals(outAnalysisData.getScenario().size(), 1);
    Scenario outScenario = outAnalysisData.getScenario().get(0);
    assertEquals(outScenario.getElementParameters().size(), 1);
    assertEquals(outScenario.getId(), "default");
    assertEquals(outScenario.getName(), "Scenario");
    assertNotNull(outScenario.getScenarioParameters());
    assertNotNull(outScenario.getElementParameters());
    assertEquals(outScenario.getElementParameters().size(), 1);
    ElementParameters outElementParamType = outScenario.getElementParameters().get(0);
    assertNotNull(outElementParamType.getTimeParameters());
    TimeParameters outTimeParams = outElementParamType.getTimeParameters();
    assertNotNull(outTimeParams.getProcessingTime());
    assertEquals(outTimeParams.getProcessingTime().getParameterValue().size(), 1);
    UniformDistributionType outDistributionType = (UniformDistributionType) outTimeParams.getProcessingTime().getParameterValue().get(0);
    assertEquals(outDistributionType.getMax(), 600.0);
    assertEquals(outDistributionType.getMin(), 180.0);
}
Also used : UniformDistributionType(bpsim.UniformDistributionType) ElementParameters(bpsim.ElementParameters) HashMap(java.util.HashMap) DocumentRoot(bpsim.DocumentRoot) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) XMLResource(org.eclipse.emf.ecore.xmi.XMLResource) Scenario(bpsim.Scenario) StringWriter(java.io.StringWriter) ByteArrayInputStream(java.io.ByteArrayInputStream) ScenarioParameters(bpsim.ScenarioParameters) Parameter(bpsim.Parameter) BPSimDataType(bpsim.BPSimDataType) TimeParameters(bpsim.TimeParameters)

Aggregations

BPSimDataType (bpsim.BPSimDataType)4 Scenario (bpsim.Scenario)4 ElementParameters (bpsim.ElementParameters)3 Relationship (org.eclipse.bpmn2.Relationship)3 FeatureMap (org.eclipse.emf.ecore.util.FeatureMap)3 ScenarioParameters (bpsim.ScenarioParameters)2 TimeParameters (bpsim.TimeParameters)2 HashMap (java.util.HashMap)2 ExtensionAttributeValue (org.eclipse.bpmn2.ExtensionAttributeValue)2 ControlParameters (bpsim.ControlParameters)1 CostParameters (bpsim.CostParameters)1 DocumentRoot (bpsim.DocumentRoot)1 Parameter (bpsim.Parameter)1 PriorityParameters (bpsim.PriorityParameters)1 ResourceParameters (bpsim.ResourceParameters)1 UniformDistributionType (bpsim.UniformDistributionType)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 InputStream (java.io.InputStream)1 StringWriter (java.io.StringWriter)1 List (java.util.List)1