ComplexDataInterface.php
Same filename in other branches
Namespace
Drupal\Core\TypedDataFile
-
core/
lib/ Drupal/ Core/ TypedData/ ComplexDataInterface.php
View source
<?php
namespace Drupal\Core\TypedData;
/**
* Interface for complex data; i.e. data containing named and typed properties.
*
* The name of a property has to be a valid PHP variable name, starting with
* an alphabetic character.
*
* This is implemented by entities as well as by field item classes of
* entities.
*
* When implementing this interface which extends Traversable, make sure to list
* IteratorAggregate or Iterator before this interface in the implements clause.
*
* @see \Drupal\Core\TypedData\ComplexDataDefinitionInterface
*
* @ingroup typed_data
*/
interface ComplexDataInterface extends TraversableTypedDataInterface {
/**
* Gets the data definition.
*
* @return \Drupal\Core\TypedData\ComplexDataDefinitionInterface
* The data definition object describing the complex data.
*/
public function getDataDefinition();
/**
* Gets a property object.
*
* @param $property_name
* The name of the property to get; e.g., 'title' or 'name'.
*
* @return \Drupal\Core\TypedData\TypedDataInterface
* The property object.
*
* @throws \InvalidArgumentException
* If an invalid property name is given.
* @throws \Drupal\Core\TypedData\Exception\MissingDataException
* If the complex data structure is unset and no property can be created.
*/
public function get($property_name);
/**
* Sets a property value.
*
* @param $property_name
* The name of the property to set; e.g., 'title' or 'name'.
* @param $value
* The value to set, or NULL to unset the property.
* @param bool $notify
* (optional) Whether to notify the parent object of the change. Defaults to
* TRUE. If the update stems from a parent object, set it to FALSE to avoid
* being notified again.
*
* @return $this
*
* @throws \InvalidArgumentException
* If the specified property does not exist.
* @throws \Drupal\Core\TypedData\Exception\MissingDataException
* If the complex data structure is unset and no property can be set.
*/
public function set($property_name, $value, $notify = TRUE);
/**
* Gets an array of property objects.
*
* @param bool $include_computed
* If set to TRUE, computed properties are included. Defaults to FALSE.
*
* @return \Drupal\Core\TypedData\TypedDataInterface[]
* An array of property objects implementing the TypedDataInterface, keyed
* by property name.
*
* @throws \Drupal\Core\TypedData\Exception\MissingDataException
* If the complex data structure is unset and no property can be created.
*/
public function getProperties($include_computed = FALSE);
/**
* Returns an array of all property values.
*
* Gets an array of plain property values including all not-computed
* properties.
*
* @return array
* An array of property values, keyed by property name.
*
* @throws \Drupal\Core\TypedData\Exception\MissingDataException
* If the complex data structure is unset and no property can be created.
*/
public function toArray();
/**
* Determines whether the data structure is empty.
*
* @return bool
* TRUE if the data structure is empty, FALSE otherwise.
*/
public function isEmpty();
}
Interfaces
Title | Deprecated | Summary |
---|---|---|
ComplexDataInterface | Interface for complex data; i.e. data containing named and typed properties. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.