class ResourceObjectData
Same name in other branches
- 9 core/modules/jsonapi/src/JsonApiResource/ResourceObjectData.php \Drupal\jsonapi\JsonApiResource\ResourceObjectData
- 10 core/modules/jsonapi/src/JsonApiResource/ResourceObjectData.php \Drupal\jsonapi\JsonApiResource\ResourceObjectData
- 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
- 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
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
File
-
core/
modules/ jsonapi/ src/ JsonApiResource/ ResourceObjectData.php, line 17
Namespace
Drupal\jsonapi\JsonApiResourceView 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.