. /** * Statement base object for xAPI structure checking and usage. * * @package core_xapi * @copyright 2020 Ferran Recio * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core_xapi\local\statement; use stdClass; use JsonSerializable; use core_xapi\iri; defined('MOODLE_INTERNAL') || die(); /** * Item class used for xAPI statement elements without validation. * * @copyright 2020 Ferran Recio * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class item implements JsonSerializable { /** @var stdClass the item structure. */ protected $data; /** * Item constructor. * * @param stdClass $data from the specific xAPI element */ protected function __construct(stdClass $data) { $this->data = $data; } /** * Function to create an item from part of the xAPI statement. * * @param stdClass $data the original xAPI element * @return item the xAPI item generated */ public static function create_from_data(stdClass $data): item { return new self($data); } /** * Return the data to serialize in case JSON statement is needed. * * @return stdClass the original data structure */ public function jsonSerialize(): stdClass { return $this->get_data(); } /** * Return the original data from this item. * * @return stdClass the original data structure */ public function get_data(): stdClass { return $this->data; } }