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());
}
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;
}
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;
}
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);
}
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;
}
Aggregations