<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_forced_variation(self, experiment_key, user_id, variation_key):
 """ Force a user into a variation for a given experiment. Args: experiment_key: A string key identifying the experiment. user_id: The user ID. variation_key: A string variation key that specifies the variation which the user. will be forced into. If null, then clear the existing experiment-to-variation mapping. Returns: A boolean value that indicates if the set completed successfully. """


    if not self.is_valid:
      self.logger.error(enums.Errors.INVALID_DATAFILE.format('set_forced_variation'))
      return False

    if not validator.is_non_empty_string(experiment_key):
      self.logger.error(enums.Errors.INVALID_INPUT_ERROR.format('experiment_key'))
      return False

    if not isinstance(user_id, string_types):
      self.logger.error(enums.Errors.INVALID_INPUT_ERROR.format('user_id'))
      return False

    return self.config.set_forced_variation(experiment_key, user_id, variation_key)