MapDataDefinition.php
Same filename in other branches
Namespace
Drupal\Core\TypedDataFile
-
core/
lib/ Drupal/ Core/ TypedData/ MapDataDefinition.php
View source
<?php
namespace Drupal\Core\TypedData;
/**
* A typed data definition class for defining maps.
*/
class MapDataDefinition extends ComplexDataDefinitionBase {
/**
* The name of the main property, or NULL if there is none.
*
* @var string
*/
protected $mainPropertyName = NULL;
/**
* Creates a new map definition.
*
* @param string $type
* (optional) The data type of the map. Defaults to 'map'.
*
* @return static
*/
public static function create($type = 'map') {
$definition['type'] = $type;
return new static($definition);
}
/**
* {@inheritdoc}
*/
public static function createFromDataType($data_type) {
return static::create($data_type);
}
/**
* {@inheritdoc}
*/
public function getPropertyDefinitions() {
if (!isset($this->propertyDefinitions)) {
$this->propertyDefinitions = [];
}
return $this->propertyDefinitions;
}
/**
* Sets the definition of a map property.
*
* @param string $name
* The name of the property to define.
* @param \Drupal\Core\TypedData\DataDefinitionInterface|null $definition
* (optional) The property definition to set, or NULL to unset it.
*
* @return $this
*/
public function setPropertyDefinition($name, ?DataDefinitionInterface $definition = NULL) {
if (isset($definition)) {
$this->propertyDefinitions[$name] = $definition;
}
else {
unset($this->propertyDefinitions[$name]);
}
return $this;
}
/**
* {@inheritdoc}
*/
public function getMainPropertyName() {
return $this->mainPropertyName;
}
/**
* Sets the main property name.
*
* @param string|null $name
* The name of the main property, or NULL if there is none.
*
* @return $this
*/
public function setMainPropertyName($name) {
$this->mainPropertyName = $name;
return $this;
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
MapDataDefinition | A typed data definition class for defining maps. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.