decorated = $decorated; $this->registerDefinitions = $registerDefinitions; } /** * {@inheritdoc} */ public function getDefinition($base_plugin_id, $exception_on_invalid = TRUE) { if (isset($this->registerDefinitions)) { call_user_func($this->registerDefinitions); } $this->definitions += $this->decorated->getDefinitions(); return parent::getDefinition($base_plugin_id, $exception_on_invalid); } /** * {@inheritdoc} */ public function getDefinitions() { if (isset($this->registerDefinitions)) { call_user_func($this->registerDefinitions); } $this->definitions += $this->decorated->getDefinitions(); return parent::getDefinitions(); } /** * Passes through all unknown calls onto the decorated object */ public function __call($method, $args) { return call_user_func_array([$this->decorated, $method], $args); } }