class ListDataDefinition in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/lib/Drupal/Core/TypedData/ListDataDefinition.php \Drupal\Core\TypedData\ListDataDefinition
A typed data definition class for defining lists.
Hierarchy
- class \Drupal\Core\TypedData\DataDefinition implements \Drupal\Core\TypedData\ArrayAccess, DataDefinitionInterface
- class \Drupal\Core\TypedData\ListDataDefinition implements ListDataDefinitionInterface
Expanded class hierarchy of ListDataDefinition
3 files declare their use of ListDataDefinition
- BaseFieldDefinition.php in core/
lib/ Drupal/ Core/ Field/ BaseFieldDefinition.php - Contains \Drupal\Core\Field\BaseFieldDefinition.
- TypedDataDefinitionTest.php in core/
modules/ system/ src/ Tests/ TypedData/ TypedDataDefinitionTest.php - Contains \Drupal\system\Tests\TypedData\TypedDataDefinitionTest.
- TypedDataTest.php in core/
modules/ system/ src/ Tests/ TypedData/ TypedDataTest.php - Contains \Drupal\system\Tests\TypedData\TypedDataTest.
1 string reference to 'ListDataDefinition'
- core.data_types.schema.yml in core/
config/ schema/ core.data_types.schema.yml - core/config/schema/core.data_types.schema.yml
File
- core/
lib/ Drupal/ Core/ TypedData/ ListDataDefinition.php, line 13 - Contains \Drupal\Core\TypedData\ListDataDefinition.
Namespace
Drupal\Core\TypedDataView source
class ListDataDefinition extends DataDefinition implements ListDataDefinitionInterface {
/**
* The data definition of a list item.
*
* @var \Drupal\Core\TypedData\DataDefinitionInterface
*/
protected $itemDefinition;
/**
* Creates a new list definition.
*
* @param string $item_type
* The data type of the list items; e.g., 'string', 'integer' or 'any'.
*
* @return \Drupal\Core\TypedData\ListDataDefinition
* A new List Data Definition object.
*/
public static function create($item_type) {
return static::createFromItemType($item_type);
}
/**
* {@inheritdoc}
*/
public static function createFromDataType($type) {
$definition = parent::createFromDataType($type);
// If nothing else given, default to a list of 'any' items.
$definition->itemDefinition = DataDefinition::create('any');
return $definition;
}
/**
* {@inheritdoc}
*/
public static function createFromItemType($item_type) {
return new static(array(), \Drupal::typedDataManager()
->createDataDefinition($item_type));
}
/**
* {@inheritdoc}
*/
public function __construct(array $values = array(), DataDefinitionInterface $item_definition = NULL) {
$this->definition = $values;
$this->itemDefinition = $item_definition;
}
/**
* {@inheritdoc}
*/
public function getDataType() {
return 'list';
}
/**
* {@inheritdoc}
*/
public function setDataType($type) {
if ($type != 'list') {
throw new \LogicException('Lists must always be of data type "list".');
}
}
/**
* {@inheritdoc}
*/
public function getClass() {
$class = isset($this->definition['class']) ? $this->definition['class'] : NULL;
if (!empty($class)) {
return $class;
}
else {
// If a list definition is used but no class has been specified, derive
// the default list class from the item type.
$item_type_definition = \Drupal::typedDataManager()
->getDefinition($this
->getItemDefinition()
->getDataType());
if (!$item_type_definition) {
throw new \LogicException("An invalid data type '{$this->getItemDefinition()->getDataType()}' has been specified for list items");
}
return $item_type_definition['list_class'];
}
}
/**
* {@inheritdoc}
*/
public function getItemDefinition() {
return $this->itemDefinition;
}
/**
* Sets the item definition.
*
* @param \Drupal\Core\TypedData\DataDefinition $definition
* A list item's data definition.
*
* @return $this
*/
public function setItemDefinition(DataDefinitionInterface $definition) {
$this->itemDefinition = $definition;
return $this;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DataDefinition:: |
protected | property | The array holding values for all definition keys. | |
DataDefinition:: |
public | function |
Adds a validation constraint. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns a validation constraint. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns an array of validation constraints. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns a human readable description. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns a human readable label. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns the value of a given setting. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Returns the array of settings, as required by the used class. Overrides DataDefinitionInterface:: |
1 |
DataDefinition:: |
public | function |
Determines whether the data value is computed. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Returns whether the data is multi-valued, i.e. a list of data items. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Determines whether the data is read-only. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function |
Determines whether a data value is required. Overrides DataDefinitionInterface:: |
|
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | This is for BC support only. @todo: Remove in https://www.drupal.org/node/1928868. | |
DataDefinition:: |
public | function | Sets the class used for creating the typed data object. | |
DataDefinition:: |
public | function | Sets whether the data is computed. | |
DataDefinition:: |
public | function | ||
DataDefinition:: |
public | function | Sets the human-readable description. | |
DataDefinition:: |
public | function | Sets the human-readable label. | |
DataDefinition:: |
public | function | Sets whether the data is read-only. | |
DataDefinition:: |
public | function | Sets whether the data is required. | |
DataDefinition:: |
public | function | Sets a definition setting. | 1 |
DataDefinition:: |
public | function | Sets the array of settings, as required by the used class. | 1 |
DataDefinition:: |
public | function | Returns all definition values as array. | |
ListDataDefinition:: |
protected | property | The data definition of a list item. | |
ListDataDefinition:: |
public static | function |
Creates a new list definition. Overrides DataDefinition:: |
1 |
ListDataDefinition:: |
public static | function |
Creates a new data definition object. Overrides DataDefinition:: |
|
ListDataDefinition:: |
public static | function |
Creates a new list data definition for items of the given data type. Overrides ListDataDefinitionInterface:: |
1 |
ListDataDefinition:: |
public | function |
Returns the class used for creating the typed data object. Overrides DataDefinition:: |
|
ListDataDefinition:: |
public | function |
Returns the data type of the data. Overrides DataDefinition:: |
|
ListDataDefinition:: |
public | function |
Gets the data definition of an item of the list. Overrides ListDataDefinitionInterface:: |
|
ListDataDefinition:: |
public | function |
Sets the data type. Overrides DataDefinition:: |
|
ListDataDefinition:: |
public | function | Sets the item definition. | |
ListDataDefinition:: |
public | function |
Constructs a new data definition object. Overrides DataDefinition:: |