null, 'source_id' => null, 'property_name' => null, 'provider_class' => null, 'target_property' => null, 'filter_expression' => null, 'priority' => null, 'description' => null, ]; protected $settingsTable = 'import_row_modifier_setting'; protected $settingsRemoteId = 'row_modifier_id'; private $hookInstance; public function getInstance() { if ($this->hookInstance === null) { $class = $this->get('provider_class'); /** @var PropertyModifierHook $obj */ if (! class_exists($class)) { throw new RuntimeException(sprintf( 'Cannot instantiate Property modifier %s', $class )); } $obj = new $class; $obj->setSettings($this->getSettings()); $obj->setPropertyName($this->get('property_name')); $obj->setTargetProperty($this->get('target_property')); $obj->setDb($this->connection); $this->hookInstance = $obj; } return $this->hookInstance; } /** * @deprecated please use \Icinga\Module\Director\Data\Exporter * @return \stdClass */ public function export() { $properties = $this->getProperties(); unset($properties['id']); unset($properties['source_id']); $properties['settings'] = $this->getInstance()->exportSettings(); ksort($properties); return (object) $properties; } public function setSettings($settings) { $settings = $this->getInstance()->setSettings((array) $settings)->getSettings(); return parent::setSettings($settings); // TODO: Change the autogenerated stub } protected function beforeStore() { if (! $this->hasBeenLoadedFromDb() && $this->get('priority') === null) { $this->setNextPriority('source_id'); } } protected function onInsert() { $this->refreshPriortyProperty(); } }