abstract class TopLevelSchemaLinkProviderBase in JSON:API Schema 8
Class TopLevelSchemaLinkProviderBase.
@internal
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\jsonapi_hypermedia\Plugin\LinkProviderBase implements LinkProviderInterface
- class \Drupal\jsonapi_schema\Plugin\jsonapi_hypermedia\LinkProvider\TopLevelSchemaLinkProviderBase implements ContainerFactoryPluginInterface
- class \Drupal\jsonapi_hypermedia\Plugin\LinkProviderBase implements LinkProviderInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of TopLevelSchemaLinkProviderBase
File
- src/
Plugin/ jsonapi_hypermedia/ LinkProvider/ TopLevelSchemaLinkProviderBase.php, line 23
Namespace
Drupal\jsonapi_schema\Plugin\jsonapi_hypermedia\LinkProviderView source
abstract class TopLevelSchemaLinkProviderBase extends LinkProviderBase implements ContainerFactoryPluginInterface {
protected static $schemaRouteType = NULL;
/**
* The current route match.
*
* @var \Drupal\Core\Routing\RouteMatchInterface
*/
protected $currentRouteMatch;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
assert(in_array(static::$schemaRouteType, [
'item',
'collection',
'entrypoint',
], TRUE));
$provider = new static($configuration, $plugin_id, $plugin_definition);
$provider
->setCurrentRouteMatch($container
->get('current_route_match'));
return $provider;
}
/**
* Sets the current route match.
*
* @param \Drupal\Core\Routing\RouteMatchInterface $route_match
*/
public function setCurrentRouteMatch(RouteMatchInterface $route_match) {
$this->currentRouteMatch = $route_match;
}
/**
* {@inheritdoc}
*/
public function getLink($context) {
assert($context instanceof JsonApiDocumentTopLevel);
if (static::$schemaRouteType === 'entrypoint') {
$schema_route_name = "jsonapi_schema." . static::$schemaRouteType;
}
else {
$route = $this->currentRouteMatch
->getRouteObject();
assert($route instanceof Route);
$resource_type = $route
->getDefault(Routes::RESOURCE_TYPE_KEY);
if (!$resource_type instanceof ResourceType) {
return AccessRestrictedLink::createInaccessibleLink(new CacheableMetadata());
}
$schema_route_name = "jsonapi_schema.{$resource_type->getTypeName()}." . static::$schemaRouteType;
}
return AccessRestrictedLink::createLink(AccessResult::allowed(), new CacheableMetadata(), new Url($schema_route_name), $this
->getLinkRelationType());
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
LinkProviderBase:: |
public | function |
Gets the link object key for the provided link. Overrides LinkProviderInterface:: |
|
LinkProviderBase:: |
public | function |
Gets the link relation type for the provided link. Overrides LinkProviderInterface:: |
1 |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TopLevelSchemaLinkProviderBase:: |
protected | property | The current route match. | |
TopLevelSchemaLinkProviderBase:: |
protected static | property | 3 | |
TopLevelSchemaLinkProviderBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
TopLevelSchemaLinkProviderBase:: |
public | function |
Adds, alters or removes hyperlinks from a link collection. Overrides LinkProviderInterface:: |
|
TopLevelSchemaLinkProviderBase:: |
public | function | Sets the current route match. |