def _check_data_port_name(self, data_port):
        """Checks the validity of a data port name

        Checks whether the name of the given data port is already used by anther data port within the state. Names
        must be unique with input data ports and output data ports.

        :param rafcon.core.data_port.DataPort data_port: The data port to be checked
        :return bool validity, str message: validity is True, when the data port is valid, False else. message gives
            more information especially if the data port is not valid
        """
        if data_port.data_port_id in self.input_data_ports:
            for input_data_port in self.input_data_ports.values():
                if data_port.name == input_data_port.name and data_port is not input_data_port:
                    return False, "data port name already existing in state's input data ports"

        elif data_port.data_port_id in self.output_data_ports:
            for output_data_port in self.output_data_ports.values():
                if data_port.name == output_data_port.name and data_port is not output_data_port:
                    return False, "data port name already existing in state's output data ports"

        return True, "valid"