class CurrentPath

The "current_path" 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 = "current_path",
  label = @Translation("Current path"),
  description = @Translation("Current path"),
  definition_class = "\Drupal\rules\TypedData\Type\CurrentPathDataDefinition"
)

Hierarchy

Expanded class hierarchy of CurrentPath

File

src/Plugin/DataType/CurrentPath.php, line 27

Namespace

Drupal\rules\Plugin\DataType
View source
class CurrentPath extends Map {
    
    /**
     * 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
CurrentPath::setValue public function Sets the data values for this type. Overrides Map::setValue
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 Overrides TypedData::applyDefaultValue 4
Map::get public function Overrides ComplexDataInterface::get
Map::getIterator public function
Map::getProperties public function Overrides ComplexDataInterface::getProperties
Map::getString public function Overrides TypedData::getString
Map::getValue public function Overrides TypedData::getValue 1
Map::isEmpty public function Overrides ComplexDataInterface::isEmpty 17
Map::onChange public function Overrides TraversableTypedDataInterface::onChange 4
Map::set public function Overrides ComplexDataInterface::set
Map::toArray public function 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.
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 Overrides TypedDataInterface::createInstance
TypedData::getConstraints public function Overrides TypedDataInterface::getConstraints 9
TypedData::getDataDefinition public function Overrides TypedDataInterface::getDataDefinition
TypedData::getName public function Overrides TypedDataInterface::getName
TypedData::getParent public function Overrides TypedDataInterface::getParent
TypedData::getPluginDefinition public function Overrides PluginInspectionInterface::getPluginDefinition
TypedData::getPluginId public function Overrides PluginInspectionInterface::getPluginId
TypedData::getPropertyPath public function Overrides TypedDataInterface::getPropertyPath
TypedData::getRoot public function Overrides TypedDataInterface::getRoot
TypedData::setContext public function Overrides TypedDataInterface::setContext
TypedData::validate public function 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