You are here

public function ResourceEntity::dataProviderFactory in RESTful 7.2

Data provider factory.

Return value

DataProviderEntityInterface The data provider for this resource.

Throws

ServerConfigurationException

Overrides Resource::dataProviderFactory

File

src/Plugin/resource/ResourceEntity.php, line 56
Contains \Drupal\restful\Plugin\resource\ResourceEntity.

Class

ResourceEntity

Namespace

Drupal\restful\Plugin\resource

Code

public function dataProviderFactory() {
  $plugin_definition = $this
    ->getPluginDefinition();
  $field_definitions = $this
    ->getFieldDefinitions();
  if (!empty($plugin_definition['dataProvider']['viewMode'])) {
    $field_definitions_array = $this
      ->viewModeFields($plugin_definition['dataProvider']['viewMode']);
    $field_definitions = ResourceFieldCollection::factory($field_definitions_array, $this
      ->getRequest());
  }
  $class_name = $this
    ->dataProviderClassName();
  if (!class_exists($class_name)) {
    throw new ServerConfigurationException(sprintf('The DataProvider could not be found for this resource: %s.', $this
      ->getResourceMachineName()));
  }
  return new $class_name($this
    ->getRequest(), $field_definitions, $this
    ->getAccount(), $this
    ->getPluginId(), $this
    ->getPath(), $plugin_definition['dataProvider']);
}