Search in sources :

Example 1 with OspSystemStructure

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

the class OspSystemStructureParserTest method valid.

@Test
public void valid() {
    OspSystemStructureParser parser = new OspSystemStructureParser();
    OspSystemStructure ospSystemStructure = parser.parse(TestResources.PARSER_SYSTEM_STRUCTURE_VALID_XML);
    List<Simulators.Simulator> simulators = ospSystemStructure.getSimulators().getSimulator();
    List<Object> connectionElements = ospSystemStructure.getConnections().getVariableConnectionOrSignalConnectionOrVariableGroupConnection();
    List<Connections.VariableConnection> variableConnections = new ArrayList<>();
    List<Connections.VariableGroupConnection> variableGroupConnections = new ArrayList<>();
    for (Object connectionElement : connectionElements) {
        if (connectionElement instanceof Connections.VariableConnection) {
            variableConnections.add((Connections.VariableConnection) connectionElement);
        } else if (connectionElement instanceof Connections.VariableGroupConnection) {
            variableGroupConnections.add((Connections.VariableGroupConnection) connectionElement);
        }
    }
    assertEquals(2, simulators.size());
    Simulators.Simulator s1 = simulators.get(0);
    Simulators.Simulator s2 = simulators.get(1);
    assertEquals("s1", s1.getName());
    assertEquals("s2", s2.getName());
    assertEquals(1, variableConnections.size());
    Connections.VariableConnection variableConnection = variableConnections.get(0);
    List<VariableEndpoint> variableEndpoints = variableConnection.getVariable();
    assertEquals(2, variableEndpoints.size());
    VariableEndpoint variableEndpointA = variableEndpoints.get(0);
    assertEquals("s1", variableEndpointA.getSimulator());
    assertEquals("v1", variableEndpointA.getName());
    VariableEndpoint variableEndpointB = variableEndpoints.get(1);
    assertEquals("s2", variableEndpointB.getSimulator());
    assertEquals("v2", variableEndpointB.getName());
    assertEquals(1, variableGroupConnections.size());
    Connections.VariableGroupConnection variableGroupConnection = variableGroupConnections.get(0);
    List<VariableEndpoint> variableGroupEndpoints = variableGroupConnection.getVariableGroup();
    assertEquals(2, variableGroupEndpoints.size());
    VariableEndpoint variableGroupEndpointA = variableGroupEndpoints.get(0);
    assertEquals("s1", variableGroupEndpointA.getSimulator());
    assertEquals("vg1", variableGroupEndpointA.getName());
    VariableEndpoint variableGroupEndpointB = variableGroupEndpoints.get(1);
    assertEquals("s2", variableGroupEndpointB.getSimulator());
    assertEquals("vg2", variableGroupEndpointB.getName());
}
Also used : Connections(com.opensimulationplatform.systemstructure.xml.model.Connections) ArrayList(java.util.ArrayList) VariableEndpoint(com.opensimulationplatform.systemstructure.xml.model.VariableEndpoint) Simulators(com.opensimulationplatform.systemstructure.xml.model.Simulators) OspSystemStructure(com.opensimulationplatform.systemstructure.xml.model.OspSystemStructure) Test(org.junit.Test)

Example 2 with OspSystemStructure

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

the class Validator method getModelDescriptionErrorMessages.

private List<String> getModelDescriptionErrorMessages(File ospSystemStructureFile, OspSystemStructure ospSystemStructureElement) {
    List<String> errorMessages = new ArrayList<>();
    for (Simulators.Simulator simulator : ospSystemStructureElement.getSimulators().getSimulator()) {
        FmuLocator fmuLocator = new DefaultFmuLocator(ospSystemStructureFile);
        URI fmu = fmuLocator.get(simulator);
        OspModelDescriptionLocator ospModelDescriptionLocator = new DefaultOspModelDescriptionLocator(ospSystemStructureFile, fmuLocator);
        Optional<File> ospModelDescriptionXml = ospModelDescriptionLocator.get(simulator);
        if (ospModelDescriptionXml.isPresent()) {
            OspModelDescriptionParser parser = new OspModelDescriptionParser();
            OspModelDescriptionType ospModelDescriptionElement = parser.parse(ospModelDescriptionXml.get());
            Map<Object, Location> locations = parser.getLocations();
            ModelDescriptionFactory factory = new ModelDescriptionFactory();
            ModelDescription modelDescription = factory.create(ospModelDescriptionXml.get(), fmu);
            Simulator s = new Simulator();
            s.setName(simulator.getName());
            s.setModelDescription(modelDescription);
            SystemStructure systemStructure = new SystemStructure();
            systemStructure.getSimulators().add(s);
            ModelDescriptionValidator validator = new ModelDescriptionValidator();
            List<ValidationDiagnostic<Object>> diagnostics = validator.validate(systemStructure);
            Map<Object, Object> coreToJaxb = createModelDescriptionMap(ospModelDescriptionElement, modelDescription);
            errorMessages.addAll(getErrorMessages(ospModelDescriptionXml.get(), locations, diagnostics, coreToJaxb));
        }
    }
    return errorMessages;
}
Also used : ModelDescriptionFactory(com.opensimulationplatform.modeldescription.xml.factory.ModelDescriptionFactory) OspSystemStructure(com.opensimulationplatform.systemstructure.xml.model.OspSystemStructure) SystemStructure(com.opensimulationplatform.core.model.systemstructure.SystemStructure) URI(java.net.URI) OspModelDescriptionParser(com.opensimulationplatform.modeldescription.xml.parser.OspModelDescriptionParser) DefaultFmuLocator(com.opensimulationplatform.systemstructure.util.DefaultFmuLocator) FmuLocator(com.opensimulationplatform.systemstructure.util.FmuLocator) ModelDescriptionValidator(com.opensimulationplatform.core.validation.modeldescription.ModelDescriptionValidator) ModelDescription(com.opensimulationplatform.core.model.modeldescription.ModelDescription) Simulators(com.opensimulationplatform.systemstructure.xml.model.Simulators) DefaultOspModelDescriptionLocator(com.opensimulationplatform.systemstructure.util.DefaultOspModelDescriptionLocator) OspModelDescriptionLocator(com.opensimulationplatform.systemstructure.util.OspModelDescriptionLocator) DefaultOspModelDescriptionLocator(com.opensimulationplatform.systemstructure.util.DefaultOspModelDescriptionLocator) DefaultFmuLocator(com.opensimulationplatform.systemstructure.util.DefaultFmuLocator) ValidationDiagnostic(com.opensimulationplatform.core.validation.ValidationDiagnostic) File(java.io.File) Simulator(com.opensimulationplatform.core.model.systemstructure.Simulator) Location(javax.xml.stream.Location)

Example 3 with OspSystemStructure

use of com.opensimulationplatform.systemstructure.xml.model.OspSystemStructure 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 4 with OspSystemStructure

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

the class Validator method getSystemStructureErrorMessages.

private List<String> getSystemStructureErrorMessages(File ospSystemStructureFile, OspSystemStructure ospSystemStructureElement, Map<Object, Location> locations) {
    SystemStructureFactory factory = new SystemStructureFactory();
    SystemStructure systemStructure = factory.create(ospSystemStructureFile);
    SystemStructureValidator validator = new SystemStructureValidator();
    List<ValidationDiagnostic<Object>> diagnostics = validator.validate(systemStructure);
    Map<Object, Object> coreToJaxb = createSystemStructureMap(systemStructure, ospSystemStructureElement);
    return getErrorMessages(ospSystemStructureFile, locations, diagnostics, coreToJaxb);
}
Also used : SystemStructureFactory(com.opensimulationplatform.systemstructure.xml.factory.SystemStructureFactory) SystemStructureValidator(com.opensimulationplatform.core.validation.systemstructure.SystemStructureValidator) OspSystemStructure(com.opensimulationplatform.systemstructure.xml.model.OspSystemStructure) SystemStructure(com.opensimulationplatform.core.model.systemstructure.SystemStructure) ValidationDiagnostic(com.opensimulationplatform.core.validation.ValidationDiagnostic)

Example 5 with OspSystemStructure

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

the class Validator method validate.

public List<String> validate(File ospSystemStructureFile) {
    List<String> errorMessages = new ArrayList<>();
    OspSystemStructureParser parser = new OspSystemStructureParser();
    OspSystemStructure ospSystemStructureElement = parser.parse(ospSystemStructureFile);
    Map<Object, Location> locations = parser.getLocations();
    errorMessages.addAll(getModelDescriptionErrorMessages(ospSystemStructureFile, ospSystemStructureElement));
    errorMessages.addAll(getSystemStructureErrorMessages(ospSystemStructureFile, ospSystemStructureElement, locations));
    return errorMessages;
}
Also used : OspSystemStructureParser(com.opensimulationplatform.systemstructure.xml.parser.OspSystemStructureParser) OspSystemStructure(com.opensimulationplatform.systemstructure.xml.model.OspSystemStructure) Location(javax.xml.stream.Location)

Aggregations

OspSystemStructure (com.opensimulationplatform.systemstructure.xml.model.OspSystemStructure)7 SystemStructure (com.opensimulationplatform.core.model.systemstructure.SystemStructure)3 Simulator (com.opensimulationplatform.core.model.systemstructure.Simulator)2 ValidationDiagnostic (com.opensimulationplatform.core.validation.ValidationDiagnostic)2 DefaultFmuLocator (com.opensimulationplatform.systemstructure.util.DefaultFmuLocator)2 DefaultOspModelDescriptionLocator (com.opensimulationplatform.systemstructure.util.DefaultOspModelDescriptionLocator)2 Connections (com.opensimulationplatform.systemstructure.xml.model.Connections)2 Simulators (com.opensimulationplatform.systemstructure.xml.model.Simulators)2 OspSystemStructureParser (com.opensimulationplatform.systemstructure.xml.parser.OspSystemStructureParser)2 ArrayList (java.util.ArrayList)2 Location (javax.xml.stream.Location)2 ModelDescription (com.opensimulationplatform.core.model.modeldescription.ModelDescription)1 VariableConnection (com.opensimulationplatform.core.model.systemstructure.VariableConnection)1 VariableGroupConnection (com.opensimulationplatform.core.model.systemstructure.VariableGroupConnection)1 ModelDescriptionValidator (com.opensimulationplatform.core.validation.modeldescription.ModelDescriptionValidator)1 SystemStructureValidator (com.opensimulationplatform.core.validation.systemstructure.SystemStructureValidator)1 ModelDescriptionFactory (com.opensimulationplatform.modeldescription.xml.factory.ModelDescriptionFactory)1 OspModelDescriptionParser (com.opensimulationplatform.modeldescription.xml.parser.OspModelDescriptionParser)1 FmuLocator (com.opensimulationplatform.systemstructure.util.FmuLocator)1 OspModelDescriptionLocator (com.opensimulationplatform.systemstructure.util.OspModelDescriptionLocator)1