コード例 #1
0
ファイル: container_state.py プロジェクト: DLR-RM/RAFCON
 def _get_model_info(self, model, info=None):
     model_list = None
     data_list = None
     model_name = ""
     model_class = None
     model_key = None
     if model == "transition":
         model_list = self.transitions
         data_list = self.state.transitions
         model_name = "transition"
         model_class = TransitionModel
     elif model == "data_flow":
         model_list = self.data_flows
         data_list = self.state.data_flows
         model_name = "data_flow"
         model_class = DataFlowModel
     elif model == "scoped_variable":
         model_list = self.scoped_variables
         data_list = self.state.scoped_variables
         model_name = "scoped_variable"
         model_class = ScopedVariableModel
     elif model == "state":
         model_list = self.states
         data_list = self.state.states
         model_name = "state"
         # Defer state type from class type (Execution, Hierarchy, ...)
         model_class = None
         if not isinstance(info.args[1], (str, dict)) and info.args[1] is not None:
             model_class = get_state_model_class_for_state(info.args[1])
         model_key = "state_id"
     return model_list, data_list, model_name, model_class, model_key
コード例 #2
0
ファイル: library_state.py プロジェクト: DLR-RM/RAFCON
 def initiate_library_root_state_model(self):
     model_class = get_state_model_class_for_state(self.state.state_copy)
     if model_class is not None:
         self.state_copy = model_class(self.state.state_copy, parent=self)
         self.state_copy_initialized = True
     else:
         logger.error(
             "Unknown state type '{type:s}'. Cannot create model.".format(
                 type=type(self.state)))
コード例 #3
0
ファイル: container_state.py プロジェクト: DLR-RM/RAFCON
    def _load_child_state_models(self, load_meta_data):
        """Adds models for each child state of the state

        :param bool load_meta_data: Whether to load the meta data of the child state
        """
        self.states = {}
        # Create model for each child class
        child_states = self.state.states
        for child_state in child_states.values():
            # Create hierarchy
            model_class = get_state_model_class_for_state(child_state)
            if model_class is not None:
                self._add_model(self.states, child_state, model_class, child_state.state_id, load_meta_data)
            else:
                logger.error("Unknown state type '{type:s}'. Cannot create model.".format(type=type(child_state)))
コード例 #4
0
 def _get_model_info(self, model, info=None):
     model_list = None
     data_list = None
     model_name = ""
     model_class = None
     model_key = None
     if model == "transition":
         model_list = self.transitions
         data_list = self.state.transitions
         model_name = "transition"
         model_class = TransitionModel
     elif model == "data_flow":
         model_list = self.data_flows
         data_list = self.state.data_flows
         model_name = "data_flow"
         model_class = DataFlowModel
     elif model == "scoped_variable":
         model_list = self.scoped_variables
         data_list = self.state.scoped_variables
         model_name = "scoped_variable"
         model_class = ScopedVariableModel
     elif model == "state":
         model_list = self.states
         data_list = self.state.states
         model_name = "state"
         # Defer state type from class type (Execution, Hierarchy, ...)
         model_class = None
         # TODO this if cause is not working if keys are used for arguments
         # if len(info.args) < 2:
         #     print("XXXX", info)
         if not isinstance(
                 info.args[1],
             (string_types, dict)) and info.args[1] is not None:
             model_class = get_state_model_class_for_state(info.args[1])
         model_key = "state_id"
     return model_list, data_list, model_name, model_class, model_key