function EntityContextDefinition::getSampleValues
Returns typed data objects representing this context definition.
This should return as many objects as needed to reflect the variations of the constraints it supports.
@yield \Drupal\Core\TypedData\TypedDataInterface The set of typed data object.
Overrides ContextDefinition::getSampleValues
File
- 
              core/lib/ Drupal/ Core/ Plugin/ Context/ EntityContextDefinition.php, line 55 
Class
- EntityContextDefinition
- Defines a class to provide entity context definitions.
Namespace
Drupal\Core\Plugin\ContextCode
protected function getSampleValues() {
  // Get the constraints from the context's definition.
  $constraints = $this->getConstraintObjects();
  $entity_type_manager = \Drupal::entityTypeManager();
  $entity_type_id = $this->getEntityTypeId();
  $entity_type = $entity_type_manager->getDefinition($entity_type_id);
  $storage = $entity_type_manager->getStorage($entity_type_id);
  // If the storage can generate a sample entity we might delegate to that.
  if ($storage instanceof ContentEntityStorageInterface) {
    if (!empty($constraints['Bundle']) && $constraints['Bundle'] instanceof BundleConstraint) {
      foreach ($constraints['Bundle']->getBundleOption() as $bundle) {
        // We have a bundle, we are bundleable and we can generate a sample.
        $values = [
          $entity_type->getKey('bundle') => $bundle,
        ];
        yield EntityAdapter::createFromEntity($storage->create($values));
      }
      return;
    }
  }
  // Either no bundle, or not bundleable, so generate an entity adapter.
  $definition = EntityDataDefinition::create($entity_type_id);
  yield new EntityAdapter($definition);
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
