class ContextDefinition in Zircon Profile 8
Same name in this branch
- 8 core/lib/Drupal/Core/Annotation/ContextDefinition.php \Drupal\Core\Annotation\ContextDefinition
- 8 core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php \Drupal\Core\Plugin\Context\ContextDefinition
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php \Drupal\Core\Plugin\Context\ContextDefinition
Defines a class for context definitions.
Hierarchy
- class \Drupal\Core\Plugin\Context\ContextDefinition implements ContextDefinitionInterface uses TypedDataTrait
Expanded class hierarchy of ContextDefinition
14 files declare their use of ContextDefinition
- ConditionTestDualUserTest.php in core/
modules/ system/ tests/ modules/ condition_test/ src/ Tests/ ConditionTestDualUserTest.php - Contains \Drupal\condition_test\Tests\ConditionTestDualUserTest.
- ContextDefinitionTest.php in core/
tests/ Drupal/ Tests/ Core/ Plugin/ Context/ ContextDefinitionTest.php - Contains \Drupal\Tests\Core\Plugin\Context\ContextDefinitionTest.
- ContextHandlerTest.php in core/
tests/ Drupal/ Tests/ Core/ Plugin/ ContextHandlerTest.php - Contains \Drupal\Tests\Core\Plugin\ContextHandlerTest.
- ContextPluginTest.php in core/
modules/ system/ src/ Tests/ Plugin/ ContextPluginTest.php - Contains \Drupal\system\Tests\Plugin\ContextPluginTest.
- ContextTypedDataTest.php in core/
tests/ Drupal/ Tests/ Core/ Plugin/ Context/ ContextTypedDataTest.php - Contains \Drupal\Tests\Core\Plugin\Context\ContextTypedDataTest.
File
- core/
lib/ Drupal/ Core/ Plugin/ Context/ ContextDefinition.php, line 15 - Contains \Drupal\Core\Plugin\Context\ContextDefinition.
Namespace
Drupal\Core\Plugin\ContextView source
class ContextDefinition implements ContextDefinitionInterface {
use TypedDataTrait;
/**
* The data type of the data.
*
* @return string
* The data type.
*/
protected $dataType;
/**
* The human-readable label.
*
* @return string
* The label.
*/
protected $label;
/**
* The human-readable description.
*
* @return string|null
* The description, or NULL if no description is available.
*/
protected $description;
/**
* Whether the data is multi-valued, i.e. a list of data items.
*
* @var bool
*/
protected $isMultiple = FALSE;
/**
* Determines whether a data value is required.
*
* @var bool
* Whether a data value is required.
*/
protected $isRequired = TRUE;
/**
* The default value.
*
* @var mixed
*/
protected $defaultValue;
/**
* An array of constraints.
*
* @var array[]
*/
protected $constraints = [];
/**
* Creates a new context definition.
*
* @param string $data_type
* The data type for which to create the context definition. Defaults to
* 'any'.
*
* @return static
* The created context definition object.
*/
public static function create($data_type = 'any') {
return new static($data_type);
}
/**
* Constructs a new context definition object.
*
* @param string $data_type
* The required data type.
* @param mixed string|null $label
* The label of this context definition for the UI.
* @param bool $required
* Whether the context definition is required.
* @param bool $multiple
* Whether the context definition is multivalue.
* @param string|null $description
* The description of this context definition for the UI.
* @param mixed $default_value
* The default value of this definition.
*/
public function __construct($data_type = 'any', $label = NULL, $required = TRUE, $multiple = FALSE, $description = NULL, $default_value = NULL) {
$this->dataType = $data_type;
$this->label = $label;
$this->isRequired = $required;
$this->isMultiple = $multiple;
$this->description = $description;
$this->defaultValue = $default_value;
}
/**
* {@inheritdoc}
*/
public function getDataType() {
return $this->dataType;
}
/**
* {@inheritdoc}
*/
public function setDataType($data_type) {
$this->dataType = $data_type;
return $this;
}
/**
* {@inheritdoc}
*/
public function getLabel() {
return $this->label;
}
/**
* {@inheritdoc}
*/
public function setLabel($label) {
$this->label = $label;
return $this;
}
/**
* {@inheritdoc}
*/
public function getDescription() {
return $this->description;
}
/**
* {@inheritdoc}
*/
public function setDescription($description) {
$this->description = $description;
return $this;
}
/**
* {@inheritdoc}
*/
public function isMultiple() {
return $this->isMultiple;
}
/**
* {@inheritdoc}
*/
public function setMultiple($multiple = TRUE) {
$this->isMultiple = $multiple;
return $this;
}
/**
* {@inheritdoc}
*/
public function isRequired() {
return $this->isRequired;
}
/**
* {@inheritdoc}
*/
public function setRequired($required = TRUE) {
$this->isRequired = $required;
return $this;
}
/**
* {@inheritdoc}
*/
public function getDefaultValue() {
return $this->defaultValue;
}
/**
* {@inheritdoc}
*/
public function setDefaultValue($default_value) {
$this->defaultValue = $default_value;
return $this;
}
/**
* {@inheritdoc}
*/
public function getConstraints() {
// @todo Apply defaults.
return $this->constraints;
}
/**
* {@inheritdoc}
*/
public function getConstraint($constraint_name) {
$constraints = $this
->getConstraints();
return isset($constraints[$constraint_name]) ? $constraints[$constraint_name] : NULL;
}
/**
* {@inheritdoc}
*/
public function setConstraints(array $constraints) {
$this->constraints = $constraints;
return $this;
}
/**
* {@inheritdoc}
*/
public function addConstraint($constraint_name, $options = NULL) {
$this->constraints[$constraint_name] = $options;
return $this;
}
/**
* {@inheritdoc}
*/
public function getDataDefinition() {
if ($this
->isMultiple()) {
$definition = $this
->getTypedDataManager()
->createListDataDefinition($this
->getDataType());
}
else {
$definition = $this
->getTypedDataManager()
->createDataDefinition($this
->getDataType());
}
if (!$definition) {
throw new \Exception("The data type '{$this->getDataType()}' is invalid");
}
$definition
->setLabel($this
->getLabel())
->setDescription($this
->getDescription())
->setRequired($this
->isRequired());
$constraints = $definition
->getConstraints() + $this
->getConstraints();
$definition
->setConstraints($constraints);
return $definition;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ContextDefinition:: |
protected | property | An array of constraints. | |
ContextDefinition:: |
protected | property | The data type of the data. | |
ContextDefinition:: |
protected | property | The default value. | |
ContextDefinition:: |
protected | property | The human-readable description. | |
ContextDefinition:: |
protected | property | Whether the data is multi-valued, i.e. a list of data items. | |
ContextDefinition:: |
protected | property | Determines whether a data value is required. | |
ContextDefinition:: |
protected | property | The human-readable label. | |
ContextDefinition:: |
public | function |
Adds a validation constraint. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public static | function | Creates a new context definition. | |
ContextDefinition:: |
public | function |
Gets a validation constraint. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Gets an array of validation constraints. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Returns the data definition of the defined context. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Gets the data type needed by the context. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Gets the default value for this context definition. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Gets a human readable description. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Gets a human readable label. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Determines whether the data is multi-valued, i.e. a list of data items. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Determines whether the context is required. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Sets the array of validation constraints. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Sets the data type needed by the context. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Sets the default data value. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Sets the human readable description. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Sets the human readable label. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Sets whether the data is multi-valued. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function |
Sets whether the data is required. Overrides ContextDefinitionInterface:: |
|
ContextDefinition:: |
public | function | Constructs a new context definition object. | |
TypedDataTrait:: |
protected | property | The typed data manager used for creating the data types. | |
TypedDataTrait:: |
public | function | Gets the typed data manager. | 1 |
TypedDataTrait:: |
public | function | Sets the typed data manager. | 1 |