Search in sources :

Example 1 with VariableConnection

use of com.opensimulationplatform.core.model.systemstructure.VariableConnection in project osp-validator by open-simulation-platform.

the class OspOwlBuilder method variableExistsInConnection.

private boolean variableExistsInConnection(Variable variable) {
    Collection<VariableConnection> variableConnections = context.variableConnections.values();
    for (VariableConnection variableConnection : variableConnections) {
        Variable variableA = variableConnection.getVariableA();
        Variable variableB = variableConnection.getVariableB();
        if (variableA.equals(variable) || variableB.equals(variable)) {
            return true;
        }
    }
    return false;
}
Also used : Variable(com.opensimulationplatform.core.model.modeldescription.Variable) VariableConnection(com.opensimulationplatform.core.model.systemstructure.VariableConnection)

Example 2 with VariableConnection

use of com.opensimulationplatform.core.model.systemstructure.VariableConnection in project osp-validator by open-simulation-platform.

the class OspSystemStructureConverter method convert.

@Override
public SystemStructure convert(OspSystemStructure ospSystemStructureElement) {
    SystemStructure systemStructure = context.systemStructure;
    List<Simulators.Simulator> simulatorElements = ospSystemStructureElement.getSimulators().getSimulator();
    List<Simulator> simulators = context.simulatorConverter.convert(simulatorElements);
    systemStructure.getSimulators().addAll(simulators);
    List<Object> connectionElements = ospSystemStructureElement.getConnections().getVariableConnectionOrSignalConnectionOrVariableGroupConnection();
    List<Connections.VariableConnection> variableConnectionElements = new ArrayList<>();
    List<Connections.VariableGroupConnection> variableGroupConnectionElements = new ArrayList<>();
    for (Object connectionElement : connectionElements) {
        if (connectionElement instanceof Connections.VariableConnection) {
            variableConnectionElements.add((Connections.VariableConnection) connectionElement);
        } else if (connectionElement instanceof Connections.VariableGroupConnection) {
            variableGroupConnectionElements.add((Connections.VariableGroupConnection) connectionElement);
        }
    }
    List<VariableConnection> variableConnections = context.variableConnectionConverter.convert(variableConnectionElements);
    systemStructure.getVariableConnections().addAll(variableConnections);
    List<VariableGroupConnection> variableGroupConnections = context.variableGroupConnectionConverter.convert(variableGroupConnectionElements);
    systemStructure.getVariableGroupConnections().addAll(variableGroupConnections);
    return systemStructure;
}
Also used : Connections(com.opensimulationplatform.systemstructure.xml.model.Connections) OspSystemStructure(com.opensimulationplatform.systemstructure.xml.model.OspSystemStructure) SystemStructure(com.opensimulationplatform.core.model.systemstructure.SystemStructure) ArrayList(java.util.ArrayList) VariableGroupConnection(com.opensimulationplatform.core.model.systemstructure.VariableGroupConnection) VariableConnection(com.opensimulationplatform.core.model.systemstructure.VariableConnection) Simulator(com.opensimulationplatform.core.model.systemstructure.Simulator)

Example 3 with VariableConnection

use of com.opensimulationplatform.core.model.systemstructure.VariableConnection in project osp-validator by open-simulation-platform.

the class SystemStructureUtil method getVariableConnectionByPartNames.

public static Optional<VariableConnection> getVariableConnectionByPartNames(SystemStructure systemStructure, String simulatorAName, String variableAName, String simulatorBName, String variableBName) {
    List<VariableConnection> variableConnections = systemStructure.getVariableConnections();
    for (VariableConnection variableConnection : variableConnections) {
        Simulator simulatorA = variableConnection.getSimulatorA();
        Variable variableA = variableConnection.getVariableA();
        Simulator simulatorB = variableConnection.getSimulatorB();
        Variable variableB = variableConnection.getVariableB();
        if (simulatorAName.equals(simulatorA.getName().get()) && variableAName.equals(variableA.getName().get()) && simulatorBName.equals(simulatorB.getName().get()) && variableBName.equals(variableB.getName().get())) {
            return Optional.of(variableConnection);
        }
    }
    return Optional.empty();
}
Also used : Variable(com.opensimulationplatform.core.model.modeldescription.Variable) VariableConnection(com.opensimulationplatform.core.model.systemstructure.VariableConnection) Simulator(com.opensimulationplatform.core.model.systemstructure.Simulator)

Example 4 with VariableConnection

use of com.opensimulationplatform.core.model.systemstructure.VariableConnection in project osp-validator by open-simulation-platform.

the class SystemStructureValidatorTest method invalid.

@Test
public void invalid() {
    Simulator s1 = new Simulator();
    s1.setName("s1");
    s1.setModelDescription(createInvalidModelDescription());
    Simulator s2 = new Simulator();
    s2.setName("s2");
    s2.setModelDescription(createInvalidModelDescription());
    SystemStructure systemStructure = new SystemStructure();
    systemStructure.getSimulators().add(s1);
    systemStructure.getSimulators().add(s2);
    VariableConnection vc1 = new VariableConnection();
    vc1.setSimulatorA(s1);
    vc1.setSimulatorB(s2);
    vc1.setVariableA(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v3"));
    vc1.setVariableB(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v4"));
    VariableConnection vc2 = new VariableConnection();
    vc2.setSimulatorA(s1);
    vc2.setSimulatorB(s2);
    vc2.setVariableA(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v3"));
    vc2.setVariableB(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v5"));
    VariableConnection vc3 = new VariableConnection();
    vc3.setSimulatorA(s1);
    vc3.setSimulatorB(s2);
    vc3.setVariableA(ModelDescriptionUtil.getVariableByName(s1.getModelDescription(), "v3"));
    vc3.setVariableB(ModelDescriptionUtil.getVariableByName(s2.getModelDescription(), "v6"));
    systemStructure.getVariableConnections().add(vc1);
    systemStructure.getVariableConnections().add(vc2);
    systemStructure.getVariableConnections().add(vc3);
    VariableGroupConnection vgc1 = new VariableGroupConnection();
    vgc1.setSimulatorA(s1);
    vgc1.setSimulatorB(s2);
    vgc1.setVariableGroupA(ModelDescriptionUtil.getVariableGroupByName(s1.getModelDescription(), "f3"));
    vgc1.setVariableGroupB(ModelDescriptionUtil.getVariableGroupByName(s2.getModelDescription(), "lv1"));
    systemStructure.getVariableGroupConnections().add(vgc1);
    SystemStructureValidator v = new SystemStructureValidator();
    List<ValidationDiagnostic<Object>> diagnostics = v.validate(systemStructure);
    assertEquals(32, diagnostics.size());
}
Also used : SystemStructure(com.opensimulationplatform.core.model.systemstructure.SystemStructure) VariableGroupConnection(com.opensimulationplatform.core.model.systemstructure.VariableGroupConnection) ValidationDiagnostic(com.opensimulationplatform.core.validation.ValidationDiagnostic) VariableConnection(com.opensimulationplatform.core.model.systemstructure.VariableConnection) Simulator(com.opensimulationplatform.core.model.systemstructure.Simulator) Test(org.junit.Test)

Example 5 with VariableConnection

use of com.opensimulationplatform.core.model.systemstructure.VariableConnection in project osp-validator by open-simulation-platform.

the class VE_VariableConnection_1_Test method valid.

@Test
public void valid() {
    Variable va = new Variable();
    va.setName("va");
    va.setType(Variable.Type.REAL);
    va.setCausality(Variable.Causality.INPUT);
    Variable vb = new Variable();
    vb.setName("vb");
    vb.setType(Variable.Type.REAL);
    vb.setCausality(Variable.Causality.INPUT);
    VariableConnection vc = new VariableConnection();
    vc.setVariableA(va);
    vc.setVariableB(vb);
    vc.setSimulatorA(new Simulator());
    vc.setSimulatorB(new Simulator());
    builder.build(vc);
    builder.complete();
    List<ValidationDiagnostic<VariableConnection>> diagnostics = validationError.validate();
    assertTrue(diagnostics.isEmpty());
}
Also used : Variable(com.opensimulationplatform.core.model.modeldescription.Variable) ValidationDiagnostic(com.opensimulationplatform.core.validation.ValidationDiagnostic) VariableConnection(com.opensimulationplatform.core.model.systemstructure.VariableConnection) Simulator(com.opensimulationplatform.core.model.systemstructure.Simulator) Test(org.junit.Test)

Aggregations

VariableConnection (com.opensimulationplatform.core.model.systemstructure.VariableConnection)19 Simulator (com.opensimulationplatform.core.model.systemstructure.Simulator)17 Variable (com.opensimulationplatform.core.model.modeldescription.Variable)15 ValidationDiagnostic (com.opensimulationplatform.core.validation.ValidationDiagnostic)13 Test (org.junit.Test)13 SystemStructure (com.opensimulationplatform.core.model.systemstructure.SystemStructure)7 VariableGroupConnection (com.opensimulationplatform.core.model.systemstructure.VariableGroupConnection)5 Unit (com.opensimulationplatform.core.model.modeldescription.Unit)4 VariableGroup (com.opensimulationplatform.core.model.modeldescription.variablegroup.VariableGroup)1 SystemStructureValidator (com.opensimulationplatform.core.validation.systemstructure.SystemStructureValidator)1 Connections (com.opensimulationplatform.systemstructure.xml.model.Connections)1 OspSystemStructure (com.opensimulationplatform.systemstructure.xml.model.OspSystemStructure)1 VariableEndpoint (com.opensimulationplatform.systemstructure.xml.model.VariableEndpoint)1 ArrayList (java.util.ArrayList)1 OWLAxiom (org.semanticweb.owlapi.model.OWLAxiom)1 OWLNamedIndividual (org.semanticweb.owlapi.model.OWLNamedIndividual)1 OWLObjectProperty (org.semanticweb.owlapi.model.OWLObjectProperty)1