Class StatementGeneratorContainer


  • public class StatementGeneratorContainer
    extends java.lang.Object
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.List<org.intocps.maestro.ast.node.PStm> createFixedPointIteration​(java.util.List<org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment.Variable> loopVariables, int iterationMax, int sccNumber, org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env)  
      org.intocps.maestro.ast.node.PStm createSetupExperimentStatement​(java.lang.String instanceName, boolean toleranceDefined, double tolerance, boolean stopTimeDefined)  
      org.intocps.maestro.ast.node.PStm enterInitializationMode​(java.lang.String instanceName)  
      org.intocps.maestro.ast.node.PStm exitInitializationMode​(java.lang.String instanceName)  
      org.intocps.maestro.ast.node.SPrimitiveTypeBase fmiTypeToMablType​(org.intocps.maestro.fmi.Fmi2ModelDescription.Types type)  
      java.util.List<org.intocps.maestro.ast.node.PStm> generateAssignmentStmForSet​(java.lang.String instanceName, long[] longs, org.intocps.maestro.ast.LexIdentifier valueArray, org.intocps.maestro.ast.LexIdentifier valRefs, java.lang.String setCommand)  
      org.intocps.maestro.ast.node.PStm generateIfConditionForSetGet()  
      java.util.function.IntFunction<org.apache.commons.lang3.tuple.Pair<org.intocps.maestro.ast.node.PExp,​java.util.List<org.intocps.maestro.ast.node.PStm>>> generateInstanceVariablesValueLocator​(java.lang.String instanceName, long[] valRefs, java.util.function.IntFunction<org.intocps.maestro.ast.node.PExp> literalExp, org.intocps.maestro.fmi.Fmi2ModelDescription.Types targetType)
      This creates a function (valueLocator) that is used to locate an output corresponding to the given input that is to be set.
      static StatementGeneratorContainer getInstance()  
      java.lang.Object[] getValues​(java.util.List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables, org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance modelInstance)  
      java.util.List<org.intocps.maestro.ast.node.PStm> getValueStm​(java.lang.String instanceName, org.intocps.maestro.ast.LexIdentifier valueArray, long[] longs, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type)  
      static void reset()  
      java.util.List<org.intocps.maestro.ast.node.PStm> setBooleansStm​(java.lang.String instanceName, long[] longs, boolean[] booleans)  
      void setInputOutputMapping​(java.util.Map<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance,​java.util.Map<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable,​java.util.AbstractMap.SimpleEntry<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance,​org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable>>> inputOutputMapping)  
      java.util.List<org.intocps.maestro.ast.node.PStm> setIntegersStm​(java.lang.String instanceName, long[] longs, int[] ints)  
      java.util.List<org.intocps.maestro.ast.node.PStm> setRealsStm​(java.lang.String instanceName, long[] longs, double[] doubles)  
      java.util.List<org.intocps.maestro.ast.node.PStm> setStringsStm​(java.lang.String instanceName, long[] longs, java.lang.String[] strings)  
      java.util.List<org.intocps.maestro.ast.node.PStm> setValueOnPortStm​(org.intocps.maestro.ast.LexIdentifier comp, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type, java.util.List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables, long[] scalarValueIndices, org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env)  
      static org.intocps.maestro.ast.node.PStm statusCheck​(org.intocps.maestro.ast.node.PExp status, java.lang.Integer[] statusCodes, java.lang.String message, boolean breakOut, boolean setGlobalExecution)  
      java.lang.Object test()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • errorReporter

        public static final java.util.function.BiFunction<org.intocps.maestro.ast.node.PExp,​java.lang.String,​org.intocps.maestro.ast.node.PStm> errorReporter
      • FMIWARNINGANDFATALERRORCODES

        public static final java.lang.Integer[] FMIWARNINGANDFATALERRORCODES
      • startTime

        public org.intocps.maestro.ast.node.PExp startTime
      • endTime

        public org.intocps.maestro.ast.node.PExp endTime
      • absoluteTolerance

        public double absoluteTolerance
      • relativeTolerance

        public double relativeTolerance
      • modelParameters

        public java.util.List<ModelParameter> modelParameters
    • Method Detail

      • reset

        public static void reset()
      • statusCheck

        public static org.intocps.maestro.ast.node.PStm statusCheck​(org.intocps.maestro.ast.node.PExp status,
                                                                    java.lang.Integer[] statusCodes,
                                                                    java.lang.String message,
                                                                    boolean breakOut,
                                                                    boolean setGlobalExecution)
      • fmiTypeToMablType

        public org.intocps.maestro.ast.node.SPrimitiveTypeBase fmiTypeToMablType​(org.intocps.maestro.fmi.Fmi2ModelDescription.Types type)
      • createSetupExperimentStatement

        public org.intocps.maestro.ast.node.PStm createSetupExperimentStatement​(java.lang.String instanceName,
                                                                                boolean toleranceDefined,
                                                                                double tolerance,
                                                                                boolean stopTimeDefined)
      • exitInitializationMode

        public org.intocps.maestro.ast.node.PStm exitInitializationMode​(java.lang.String instanceName)
      • createFixedPointIteration

        public java.util.List<org.intocps.maestro.ast.node.PStm> createFixedPointIteration​(java.util.List<org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment.Variable> loopVariables,
                                                                                           int iterationMax,
                                                                                           int sccNumber,
                                                                                           org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env)
                                                                                    throws org.intocps.maestro.plugin.ExpandException
        Throws:
        org.intocps.maestro.plugin.ExpandException
      • setValueOnPortStm

        public java.util.List<org.intocps.maestro.ast.node.PStm> setValueOnPortStm​(org.intocps.maestro.ast.LexIdentifier comp,
                                                                                   org.intocps.maestro.fmi.Fmi2ModelDescription.Types type,
                                                                                   java.util.List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables,
                                                                                   long[] scalarValueIndices,
                                                                                   org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env)
                                                                            throws org.intocps.maestro.plugin.ExpandException
        Throws:
        org.intocps.maestro.plugin.ExpandException
      • enterInitializationMode

        public org.intocps.maestro.ast.node.PStm enterInitializationMode​(java.lang.String instanceName)
      • setInputOutputMapping

        public void setInputOutputMapping​(java.util.Map<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance,​java.util.Map<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable,​java.util.AbstractMap.SimpleEntry<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance,​org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable>>> inputOutputMapping)
      • generateInstanceVariablesValueLocator

        public java.util.function.IntFunction<org.apache.commons.lang3.tuple.Pair<org.intocps.maestro.ast.node.PExp,​java.util.List<org.intocps.maestro.ast.node.PStm>>> generateInstanceVariablesValueLocator​(java.lang.String instanceName,
                                                                                                                                                                                                                    long[] valRefs,
                                                                                                                                                                                                                    java.util.function.IntFunction<org.intocps.maestro.ast.node.PExp> literalExp,
                                                                                                                                                                                                                    org.intocps.maestro.fmi.Fmi2ModelDescription.Types targetType)
        This creates a function (valueLocator) that is used to locate an output corresponding to the given input that is to be set. If the co-simulation has entered instancesLookupDependencies then it will determine the variable using the inputs to outputs map (inputOutputMapping2) and locate it using instanceVariables. Otherwise it uses the argument literalExp to return a valueLocator. It uses to
        Parameters:
        instanceName - name of the instance on which the FMI-function is invoked.
        valRefs - value reference argument to the FMI function
        literalExp - Function to apply the int to, if the co-simulation has not entered instancesLookupDependencies mode.
        Returns:
        a function (valueLocator) that, given an int representing the index of valRefs, will locate the corresponding output
      • setRealsStm

        public java.util.List<org.intocps.maestro.ast.node.PStm> setRealsStm​(java.lang.String instanceName,
                                                                             long[] longs,
                                                                             double[] doubles)
      • setBooleansStm

        public java.util.List<org.intocps.maestro.ast.node.PStm> setBooleansStm​(java.lang.String instanceName,
                                                                                long[] longs,
                                                                                boolean[] booleans)
      • setIntegersStm

        public java.util.List<org.intocps.maestro.ast.node.PStm> setIntegersStm​(java.lang.String instanceName,
                                                                                long[] longs,
                                                                                int[] ints)
      • setStringsStm

        public java.util.List<org.intocps.maestro.ast.node.PStm> setStringsStm​(java.lang.String instanceName,
                                                                               long[] longs,
                                                                               java.lang.String[] strings)
      • generateAssignmentStmForSet

        public java.util.List<org.intocps.maestro.ast.node.PStm> generateAssignmentStmForSet​(java.lang.String instanceName,
                                                                                             long[] longs,
                                                                                             org.intocps.maestro.ast.LexIdentifier valueArray,
                                                                                             org.intocps.maestro.ast.LexIdentifier valRefs,
                                                                                             java.lang.String setCommand)
      • generateIfConditionForSetGet

        public org.intocps.maestro.ast.node.PStm generateIfConditionForSetGet()
      • getValues

        public java.lang.Object[] getValues​(java.util.List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables,
                                            org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance modelInstance)
      • getValueStm

        public java.util.List<org.intocps.maestro.ast.node.PStm> getValueStm​(java.lang.String instanceName,
                                                                             org.intocps.maestro.ast.LexIdentifier valueArray,
                                                                             long[] longs,
                                                                             org.intocps.maestro.fmi.Fmi2ModelDescription.Types type)
                                                                      throws org.intocps.maestro.plugin.ExpandException
        Throws:
        org.intocps.maestro.plugin.ExpandException
      • test

        public java.lang.Object test()