/**
  * Returns a new action object built using the information described in $action.
  *
  * @param object $json a JSON action returned by AppEngine.
  *
  * @return NelioABPageAccessedAction the new action containing all the information in `$action`.
  *
  * @since PHPDOC
  * @Override
  */
 public static function decode_from_appengine($json)
 {
     $internal = isset($json->internal) && $json->internal;
     $indirect = isset($json->indirect) && $json->indirect;
     $ref = $json->reference;
     $title = __('Undefined', 'nelioab');
     if (isset($json->title)) {
         $title = $json->title;
     }
     $action = new NelioABPageAccessedAction($ref, $internal);
     $action->set_title($title);
     $action->set_indirect_navigations_enabled($indirect);
     if (isset($json->key->id)) {
         $action->set_id($json->key->id);
     }
     return $action;
 }