Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ResourceObjectData.php

class 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

  • class \Drupal\jsonapi\JsonApiResource\Data implements \Drupal\jsonapi\JsonApiResource\IteratorAggregate, \Drupal\jsonapi\JsonApiResource\Countable
    • class \Drupal\jsonapi\JsonApiResource\ResourceObjectData extends \Drupal\jsonapi\JsonApiResource\Data implements \Drupal\jsonapi\JsonApiResource\TopLevelDataInterface

Expanded class hierarchy of ResourceObjectData

See also

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

jsonapi.api.php

4 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

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

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal