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
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)))
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)))
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