/** * Returns a field type from the given config identifier if it represents a field * * @param ConfigIdInterface $configId * * @return string|null A field type if $configId represents a field; otherwise, null */ public function getFieldType(ConfigIdInterface $configId) { if ($configId instanceof FieldConfigId) { return $configId->getFieldType(); } return null; }
/** * Creates an instance if Config class which stores configuration data for an object * which is represented by the given id. * The returned object is initialized with data specified $values argument. * * @param ConfigIdInterface $configId * @param array $values An associative array contains configuration properties * key = property name * value = property value * @return Config */ public function createConfig(ConfigIdInterface $configId, array $values) { $config = new Config($configId); if ($configId instanceof FieldConfigId) { $type = PropertyConfigContainer::TYPE_FIELD; $defaultValues = $this->getPropertyConfig()->getDefaultValues($type, $configId->getFieldType()); } else { $type = PropertyConfigContainer::TYPE_ENTITY; $defaultValues = $this->getPropertyConfig()->getDefaultValues($type); } $values = array_merge($defaultValues, $values); foreach ($values as $key => $value) { $config->set($key, $value); } $this->merge($config); return $config; }