/**
  * Returns a new action object built using the information described in $action.
  *
  * @param object $json a JSON action returned by AppEngine.
  *
  * @return NelioABFormSubmissionAction the new action containing all the information in `$action`.
  *
  * @since PHPDOC
  * @Override
  */
 public static function decode_from_appengine($json)
 {
     $action = false;
     $type = self::kind_and_plugin_to_type($json->kind, $json->plugin);
     if ($type) {
         $action = new NelioABFormSubmissionAction($type, $json->form);
         $action->accept_sumissions_from_any_page(isset($json->anyPage) && $json->anyPage);
     }
     if (isset($json->key->id)) {
         $action->set_id($json->key->id);
     }
     return $action;
 }