Search in sources :

Example 1 with Simulator

use of com.opensimulationplatform.core.model.systemstructure.Simulator 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 2 with Simulator

use of com.opensimulationplatform.core.model.systemstructure.Simulator 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 Simulator

use of com.opensimulationplatform.core.model.systemstructure.Simulator 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 Simulator

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

the class SystemStructureUtil method getVariableGroupConnectionByPartNames.

public static Optional<VariableGroupConnection> getVariableGroupConnectionByPartNames(SystemStructure systemStructure, String simulatorAName, String variableGroupAName, String simulatorBName, String variableGroupBName) {
    List<VariableGroupConnection> variableGroupConnections = systemStructure.getVariableGroupConnections();
    for (VariableGroupConnection variableGroupConnection : variableGroupConnections) {
        Simulator simulatorA = variableGroupConnection.getSimulatorA();
        VariableGroup variableA = variableGroupConnection.getVariableGroupA();
        Simulator simulatorB = variableGroupConnection.getSimulatorB();
        VariableGroup variableB = variableGroupConnection.getVariableGroupB();
        if (simulatorAName.equals(simulatorA.getName().get()) && variableGroupAName.equals(variableA.getName().get()) && simulatorBName.equals(simulatorB.getName().get()) && variableGroupBName.equals(variableB.getName().get())) {
            return Optional.of(variableGroupConnection);
        }
    }
    return Optional.empty();
}
Also used : VariableGroupConnection(com.opensimulationplatform.core.model.systemstructure.VariableGroupConnection) VariableGroup(com.opensimulationplatform.core.model.modeldescription.variablegroup.VariableGroup) Simulator(com.opensimulationplatform.core.model.systemstructure.Simulator)

Example 5 with Simulator

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

the class ValidatorContextFactory method create.

public ValidatorContext create(ModelDescription modelDescription) {
    Simulator simulator = new Simulator();
    simulator.setModelDescription(modelDescription);
    OwlBuilderContext builderContext = new OwlBuilderContext();
    builderContext.owl = new OWLConfig();
    builderContext.owl.removeNakedVariables = false;
    SimulatorOwlBuilder builder = new SimulatorOwlBuilder();
    builder.setContext(builderContext);
    builder.build(simulator);
    builder.complete();
    ValidatorContext validatorContext = new ValidatorContext();
    validatorContext.owl = builderContext.owl;
    validatorContext.invalidIndividuals = builderContext.invalidIndividuals;
    validatorContext.names = builderContext.names;
    validatorContext.units = builderContext.units;
    validatorContext.variables = builderContext.variables;
    validatorContext.variableGroups = builderContext.variableGroups;
    validatorContext.simulators = builderContext.simulators;
    return validatorContext;
}
Also used : OwlBuilderContext(com.opensimulationplatform.core.owlbuilder.OwlBuilderContext) OWLConfig(com.opensimulationplatform.core.owlconfig.OWLConfig) SimulatorOwlBuilder(com.opensimulationplatform.core.owlbuilder.SimulatorOwlBuilder) Simulator(com.opensimulationplatform.core.model.systemstructure.Simulator)

Aggregations

Simulator (com.opensimulationplatform.core.model.systemstructure.Simulator)38 ValidationDiagnostic (com.opensimulationplatform.core.validation.ValidationDiagnostic)30 Test (org.junit.Test)29 Variable (com.opensimulationplatform.core.model.modeldescription.Variable)23 VariableConnection (com.opensimulationplatform.core.model.systemstructure.VariableConnection)17 VariableGroupConnection (com.opensimulationplatform.core.model.systemstructure.VariableGroupConnection)15 SystemStructure (com.opensimulationplatform.core.model.systemstructure.SystemStructure)14 Force (com.opensimulationplatform.core.model.modeldescription.variablegroup.force.Force)10 LinearVelocity (com.opensimulationplatform.core.model.modeldescription.variablegroup.linearvelocity.LinearVelocity)8 Unit (com.opensimulationplatform.core.model.modeldescription.Unit)6 ModelDescription (com.opensimulationplatform.core.model.modeldescription.ModelDescription)5 VariableGroup (com.opensimulationplatform.core.model.modeldescription.variablegroup.VariableGroup)4 Generic (com.opensimulationplatform.core.model.modeldescription.variablegroup.generic.Generic)4 LinearMechanicalPort (com.opensimulationplatform.core.model.modeldescription.variablegroup.linearmechanicalport.LinearMechanicalPort)2 OspSystemStructure (com.opensimulationplatform.systemstructure.xml.model.OspSystemStructure)2 VariableEndpoint (com.opensimulationplatform.systemstructure.xml.model.VariableEndpoint)2 Name (com.opensimulationplatform.core.model.modeldescription.Name)1 OwlBuilderContext (com.opensimulationplatform.core.owlbuilder.OwlBuilderContext)1 SimulatorOwlBuilder (com.opensimulationplatform.core.owlbuilder.SimulatorOwlBuilder)1 OWLConfig (com.opensimulationplatform.core.owlconfig.OWLConfig)1