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 implements \Drupal\jsonapi\JsonApiResource\TopLevelDataInterface extends \Drupal\jsonapi\JsonApiResource\Data
 
 
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.