Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
21.05% |
4 / 19 |
CRAP | |
36.36% |
16 / 44 |
| ContextDefinition | |
0.00% |
0 / 1 |
|
21.05% |
4 / 19 |
146.73 | |
36.36% |
16 / 44 |
| create | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 7 |
|||
| getDataType | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| setDataType | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getLabel | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| setLabel | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getDescription | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| setDescription | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| isMultiple | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| setMultiple | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| isRequired | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| setRequired | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getDefaultValue | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setDefaultValue | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getConstraints | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| getConstraint | |
100.00% |
1 / 1 |
2 | |
100.00% |
2 / 2 |
|||
| setConstraints | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| addConstraint | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getDataDefinition | |
100.00% |
1 / 1 |
3 | |
100.00% |
11 / 11 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Plugin\Context\ContextDefinition. | |
| */ | |
| namespace Drupal\Core\Plugin\Context; | |
| use Drupal\Core\TypedData\TypedDataTrait; | |
| /** | |
| * Defines a class for context definitions. | |
| */ | |
| 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; | |
| } | |
| } |