docs: def _check_data_flow_validity(self, check_data_flow):
          """Checks the validity of a data flow
  
          Calls further checks to inspect the id, ports and data types.
  
          :param rafcon.core.data_flow.DataFlow check_data_flow: The data flow to be checked
          :return bool validity, str message: validity is True, when the data flow is valid, False else. message gives
              more information especially if the data flow is not valid
          """
          valid, message = self._check_data_flow_id(check_data_flow)
          if not valid:
              return False, message
  
          valid, message = self._check_data_flow_ports(check_data_flow)
          if not valid:
              return False, message
  
          return self._check_data_flow_types(check_data_flow)