class Site

The "site" data type.

The "map" data type represent a simple complex data type, e.g. for representing associative arrays. It can also serve as base class for any complex data type.

By default there is no metadata for contained properties. Extending classes may want to override MapDataDefinition::getPropertyDefinitions() to define it.

Plugin annotation


@DataType(
  id = "site",
  label = @Translation("Site information"),
  description = @Translation("Site information"),
  definition_class = "\Drupal\rules\TypedData\Type\SiteDataDefinition"
)

Hierarchy

Expanded class hierarchy of Site

2 string references to 'Site'
SiteContext::getRuntimeContexts in src/ContextProvider/SiteContext.php
Gets runtime context values for the given context IDs.
SiteContextTest::testGetAvailableContexts in tests/src/Kernel/ContextProvider/SiteContextTest.php
@covers ::getAvailableContexts

File

src/Plugin/DataType/Site.php, line 28

Namespace

Drupal\rules\Plugin\DataType
View source
class Site extends Map implements SiteInterface {
    
    /**
     * Sets the data values for this type.
     *
     * Overrides \Drupal\Core\TypedData\TypedData::setValue().
     *
     * @param array|null $values
     *   An array of property values.
     * @param bool $notify
     *   (optional) Whether to notify the parent object of the change. Defaults
     *   to TRUE. If a property is updated from a parent object, set it to FALSE
     *   to avoid being notified again.
     */
    public function setValue($values, $notify = TRUE) {
        // @todo Should check if is IteratorAggregate instead, then we can
        // use foreach and treat arrays/objects the same.
        if (isset($values) && !is_array($values)) {
            if (!method_exists($values, 'toArray')) {
                throw new \InvalidArgumentException("Invalid values given. Values must be represented as an associative array.");
            }
            else {
                $this->values = $values->toArray();
            }
        }
        else {
            $this->values = $values;
        }
        // Update any existing property objects.
        foreach ($this->properties as $name => $property) {
            $value = $values[$name] ?? NULL;
            $property->setValue($value, FALSE);
            // Remove the value from $this->values to ensure it does not contain any
            // value for computed properties.
            unset($this->values[$name]);
        }
        // Notify the parent of any changes.
        if ($notify && isset($this->parent)) {
            $this->parent
                ->onChange($this->name);
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
DependencySerializationTrait::$_entityStorages protected property
DependencySerializationTrait::$_serviceIds protected property
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
Map::$definition protected property The data definition. Overrides TypedData::$definition
Map::$properties protected property The array of properties.
Map::$values protected property An array of values for the contained properties.
Map::applyDefaultValue public function Applies the default value. Overrides TypedData::applyDefaultValue 4
Map::get public function Gets a property object. Overrides ComplexDataInterface::get
Map::getIterator public function
Map::getProperties public function Gets an array of property objects. Overrides ComplexDataInterface::getProperties
Map::getString public function Returns a string representation of the data. Overrides TypedData::getString
Map::getValue public function Gets the data value. Overrides TypedData::getValue 1
Map::isEmpty public function Determines whether the data structure is empty. Overrides ComplexDataInterface::isEmpty 17
Map::onChange public function Overrides TraversableTypedDataInterface::onChange 4
Map::set public function Sets a property value. Overrides ComplexDataInterface::set
Map::toArray public function Returns an array of all property values. Overrides ComplexDataInterface::toArray 1
Map::writePropertyValue protected function Writes the value of a property without handling changes. 1
Map::__clone public function Magic method: Implements a deep clone.
Site::setValue public function Sets the data values for this type. Overrides Map::setValue
StringTranslationTrait::$stringTranslation protected property The string translation service. 3
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TypedData::$name protected property The property name.
TypedData::$parent protected property The parent typed data object.
TypedData::createInstance public static function Constructs a TypedData object given its definition and context. Overrides TypedDataInterface::createInstance
TypedData::getConstraints public function Gets a list of validation constraints. Overrides TypedDataInterface::getConstraints 9
TypedData::getDataDefinition public function Gets the data definition. Overrides TypedDataInterface::getDataDefinition
TypedData::getName public function Returns the name of a property or item. Overrides TypedDataInterface::getName
TypedData::getParent public function Returns the parent data structure; i.e. either complex data or a list. Overrides TypedDataInterface::getParent
TypedData::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition
TypedData::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
TypedData::getPropertyPath public function Returns the property path of the data. Overrides TypedDataInterface::getPropertyPath
TypedData::getRoot public function Returns the root of the typed data tree. Overrides TypedDataInterface::getRoot
TypedData::setContext public function Sets the context of a property or item via a context aware parent. Overrides TypedDataInterface::setContext
TypedData::validate public function Validates the currently set data value. Overrides TypedDataInterface::validate
TypedData::__construct public function Constructs a TypedData object given its definition and context. 3
TypedDataTrait::$typedDataManager protected property The typed data manager used for creating the data types.
TypedDataTrait::getTypedDataManager public function Gets the typed data manager. 2
TypedDataTrait::setTypedDataManager public function Sets the typed data manager. 2