class ResourceObjectData

Same name in other branches
  1. 9 core/modules/jsonapi/src/JsonApiResource/ResourceObjectData.php \Drupal\jsonapi\JsonApiResource\ResourceObjectData
  2. 8.9.x core/modules/jsonapi/src/JsonApiResource/ResourceObjectData.php \Drupal\jsonapi\JsonApiResource\ResourceObjectData
  3. 11.x core/modules/jsonapi/src/JsonApiResource/ResourceObjectData.php \Drupal\jsonapi\JsonApiResource\ResourceObjectData

Represents the primary data for individual and collection documents.

@internal JSON:API maintains no PHP API. The API is the HTTP API. This class may change at any time and could break any dependencies on it.

Hierarchy

Expanded class hierarchy of ResourceObjectData

See also

https://www.drupal.org/project/drupal/issues/3032787

jsonapi.api.php

6 files declare their use of ResourceObjectData
EntityResource.php in core/modules/jsonapi/src/Controller/EntityResource.php
EntryPoint.php in core/modules/jsonapi/src/Controller/EntryPoint.php
FileUpload.php in core/modules/jsonapi/src/Controller/FileUpload.php
IncludeResolver.php in core/modules/jsonapi/src/IncludeResolver.php
JsonApiDocumentTopLevelNormalizerTest.php in core/modules/jsonapi/tests/src/Kernel/Normalizer/JsonApiDocumentTopLevelNormalizerTest.php

... See full list

File

core/modules/jsonapi/src/JsonApiResource/ResourceObjectData.php, line 17

Namespace

Drupal\jsonapi\JsonApiResource
View source
class ResourceObjectData extends Data implements TopLevelDataInterface {
    
    /**
     * ResourceObjectData constructor.
     *
     * @param \Drupal\jsonapi\JsonApiResource\ResourceObject[]|\Drupal\jsonapi\Exception\EntityAccessDeniedHttpException[] $data
     *   Resource objects that are the primary data for the response.
     * @param int $cardinality
     *   The number of resources that this collection may contain.
     *
     * @see \Drupal\jsonapi\JsonApiResource\Data::__construct
     */
    public function __construct($data, $cardinality = -1) {
        assert(Inspector::assertAllObjects($data, ResourceObject::class, EntityAccessDeniedHttpException::class));
        parent::__construct($data, $cardinality);
    }
    
    /**
     * {@inheritdoc}
     */
    public function getData() {
        return $this->getAccessible();
    }
    
    /**
     * Gets only data to be exposed.
     *
     * @return static
     */
    public function getAccessible() {
        $accessible_data = [];
        foreach ($this->data as $resource_object) {
            if (!$resource_object instanceof EntityAccessDeniedHttpException) {
                $accessible_data[] = $resource_object;
            }
        }
        return new static($accessible_data, $this->cardinality);
    }
    
    /**
     * Gets only data to be omitted.
     *
     * @return static
     */
    public function getOmissions() {
        $omitted_data = [];
        foreach ($this->data as $resource_object) {
            if ($resource_object instanceof EntityAccessDeniedHttpException) {
                $omitted_data[] = $resource_object;
            }
        }
        return new OmittedData($omitted_data);
    }
    
    /**
     * {@inheritdoc}
     */
    public function getMergedLinks(LinkCollection $top_level_links) {
        return $top_level_links;
    }
    
    /**
     * {@inheritdoc}
     */
    public function getMergedMeta(array $top_level_meta) {
        return $top_level_meta;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
Data::$cardinality protected property The number of resources permitted in this collection.
Data::$count protected property Holds the total count of entities.
Data::$data protected property Various representations of JSON:API objects.
Data::$hasNextPage protected property Holds a boolean indicating if there is a next page.
Data::count public function Returns the number of entities.
Data::deduplicate public static function Returns a new, deduplicated Data object.
Data::getCardinality public function Gets the cardinality of this collection.
Data::getIterator public function Returns an iterator for entities.
Data::getTotalCount public function
Data::hasNextPage public function Checks if there is a next page in the collection.
Data::merge public static function Returns a new Data object containing the entities of $this and $other.
Data::setHasNextPage public function Sets the has next page flag.
Data::setTotalCount public function
Data::toArray public function Returns the collection as an array.
ResourceObjectData::getAccessible public function Gets only data to be exposed.
ResourceObjectData::getData public function Returns the data for the top-level data member of a JSON:API document. Overrides TopLevelDataInterface::getData
ResourceObjectData::getMergedLinks public function Merges the object's links with the top-level links. Overrides TopLevelDataInterface::getMergedLinks
ResourceObjectData::getMergedMeta public function Merges the object's meta member with the top-level meta member. Overrides TopLevelDataInterface::getMergedMeta
ResourceObjectData::getOmissions public function Gets only data to be omitted. Overrides TopLevelDataInterface::getOmissions
ResourceObjectData::__construct public function ResourceObjectData constructor. Overrides Data::__construct 2

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.