/** * Returns the enum constants * * @return array<KalturaPropertyInfo> */ public function getConstants() { if (!is_null($this->_constants)) { return $this->_constants; } $this->_constants = array(); $constantsDescription = array(); if ($this->isEnum() || $this->isStringEnum()) { $reflectClass = new ReflectionClass($this->_type); $constantsDescription = call_user_func(array($this->_type, 'getDescriptions')); $contants = $reflectClass->getConstants(); foreach ($contants as $enum => $value) { if ($this->isEnum()) { $prop = new KalturaPropertyInfo("int", $enum); } else { $prop = new KalturaPropertyInfo("string", $enum); } if (isset($constantsDescription[$value])) { $prop->setDescription($constantsDescription[$value]); } $prop->setDefaultValue($value); $this->_constants[] = $prop; } } if ($this->isDynamicEnum()) { $type = $this->getType(); $baseEnumName = $type::getEnumClass(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaEnumerator'); foreach ($pluginInstances as $pluginInstance) { $pluginName = $pluginInstance->getPluginName(); $enums = $pluginInstance->getEnums($baseEnumName); foreach ($enums as $enum) { $enumConstans = $enum::getAdditionalValues(); foreach ($enumConstans as $name => $value) { $value = $pluginName . IKalturaEnumerator::PLUGIN_VALUE_DELIMITER . $value; $prop = new KalturaPropertyInfo("string", $name); $prop->setDefaultValue($value); if (isset($constantsDescription[$value])) { $prop->setDescription($constantsDescription[$value]); } $this->_constants[] = $prop; } } } } return $this->_constants; }
/** * Returns the enum constants * * @return array */ public function getConstants() { if ($this->_constants === null) { $this->_constants = array(); if ($this->isEnum() || $this->isStringEnum()) { $reflectClass = new ReflectionClass($this->_type); $constantsDescription = array(); if ($reflectClass->hasMethod("getDescription")) { $constantsDescription = $reflectClass->getMethod("getDescription")->invoke($this->_instance); } $contants = $reflectClass->getConstants(); foreach ($contants as $enum => $value) { if ($this->isEnum()) { $prop = new KalturaPropertyInfo("int", $enum); } else { $prop = new KalturaPropertyInfo("string", $enum); } if (array_key_exists($value, $constantsDescription)) { $prop->setDescription($constantsDescription[$value]); } $prop->setDefaultValue($value); $this->_constants[] = $prop; } } if ($this->isDynamicEnum()) { $type = $this->getType(); // TODO remove call_user_func after moving to php 5.3 $baseEnumName = call_user_func(array($type, 'getEnumClass')); // $baseEnumName = $type::getEnumClass(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaEnumerator'); foreach ($pluginInstances as $pluginInstance) { $pluginName = $pluginInstance->getPluginName(); $enums = $pluginInstance->getEnums($baseEnumName); foreach ($enums as $enum) { // TODO remove call_user_func after moving to php 5.3 $enumConstans = call_user_func(array($enum, 'getAdditionalValues')); // $enumConstans = $enum::getAdditionalValues(); foreach ($enumConstans as $name => $value) { $prop = new KalturaPropertyInfo("string", $name); $prop->setDefaultValue($pluginName . IKalturaEnumerator::PLUGIN_VALUE_DELIMITER . $value); $this->_constants[] = $prop; } } } } } return $this->_constants; }