/**
  * PHPDOC
  *
  * @param object            $json_goal PHPDOC
  * @param NelioABExperiment $exp       PHPDOC
  *
  * @return NelioABAltExpGoal PHPDOC
  *
  * @since PHPDOC
  */
 public static function build_goal_using_json4js($json_goal, $exp)
 {
     $goal = new NelioABAltExpGoal($exp);
     // If the goal was new, but it was also deleted, do nothing...
     if (isset($json_goal->wasDeleted) && $json_goal->wasDeleted) {
         if ($json_goal->id < 0) {
             return false;
         } else {
             $goal->set_to_be_deleted(true);
         }
     }
     $goal->set_id($json_goal->id);
     $goal->set_name($json_goal->name);
     if (isset($json_goal->benefit) && !empty($json_goal->benefit)) {
         $goal->set_benefit($json_goal->benefit);
     } else {
         $goal->set_benefit(NelioABSettings::get_def_conv_value());
     }
     foreach ($json_goal->actions as $json_action) {
         $action = NelioABAction::build_action_using_json4js($json_action);
         if ($action) {
             $goal->add_action($action);
         }
     }
     return $goal;
 }