/**
  * converts raw data to config values of defined type
  * 
  * @TODO support array contents conversion
  * @TODO support interceptors
  * 
  * @param   mixed     $_rawData
  * @param   string    $_name
  * @return  mixed
  */
 protected function _rawToConfig($_rawData, $_name)
 {
     if ($_rawData === null) {
         return $_rawData;
     }
     $definition = self::getDefinition($_name);
     if (!$definition) {
         return is_array($_rawData) ? new Tinebase_Config_Struct($_rawData) : $_rawData;
     }
     if ($definition['type'] === self::TYPE_OBJECT && isset($definition['class']) && @class_exists($definition['class'])) {
         return new $definition['class'](is_array($_rawData) ? $_rawData : array());
     }
     switch ($definition['type']) {
         case self::TYPE_INT:
             return (int) $_rawData;
         case self::TYPE_BOOL:
             return $_rawData === "true" || (bool) (int) $_rawData;
         case self::TYPE_STRING:
             return (string) $_rawData;
         case self::TYPE_FLOAT:
             return (double) $_rawData;
         case self::TYPE_ARRAY:
             return (array) $_rawData;
         case self::TYPE_DATETIME:
             return new DateTime($_rawData);
         case self::TYPE_KEYFIELD_CONFIG:
             $options = isset($definition['options']) || array_key_exists('options', $definition) ? (array) $definition['options'] : array();
             $options['appName'] = $this->_appName;
             return Tinebase_Config_KeyField::create($_rawData, $options);
         default:
             return is_array($_rawData) ? new Tinebase_Config_Struct($_rawData) : $_rawData;
     }
 }
Ejemplo n.º 2
0
 /**
  * converts raw data to config values of defined type
  * 
  * @TODO support array contents conversion
  * @TODO support interceptors
  * @TODO find a place for defaults of definition
  * 
  * @param   mixed     $_rawData
  * @param   string    $_name
  * @return  mixed
  */
 protected function _rawToConfig($_rawData, $_name)
 {
     $definition = self::getDefinition($_name);
     //        // config.inc.php overwrites all other rawData
     //        $configFileSection = $this->_getConfigFileSection($_name);
     //        if ($configFileSection) {
     //            $_rawData = $configFileSection[$_name];
     //        }
     if (!$definition) {
         return is_array($_rawData) ? new Tinebase_Config_Struct($_rawData) : $_rawData;
     }
     //        // get default from definition if needed
     //        if (is_string($_rawData) && $_rawData == Tinebase_Model_Config::NOTSET) {
     //            if (array_key_exists('default', $definition)) {
     //                $_rawData = $definition['default'];
     //            }
     //        }
     if ($definition['type'] === self::TYPE_OBJECT && isset($definition['class']) && @class_exists($definition['class'])) {
         return new $definition['class']($_rawData);
     }
     switch ($definition['type']) {
         case self::TYPE_INT:
             return (int) $_rawData;
         case self::TYPE_STRING:
             return (string) $_rawData;
         case self::TYPE_FLOAT:
             return (double) $_rawData;
         case self::TYPE_DATETIME:
             return new DateTime($_rawData);
         case self::TYPE_KEYFIELD:
             return Tinebase_Config_KeyField::create($_rawData, array_key_exists('options', $definition) ? (array) $definition['options'] : array());
         default:
             return is_array($_rawData) ? new Tinebase_Config_Struct($_rawData) : $_rawData;
     }
 }
 /**
  * converts raw data to config values of defined type
  * 
  * @TODO support array contents conversion
  * @TODO support interceptors
  * 
  * @param   mixed     $_rawData
  * @param   string    $_name
  * @return  mixed
  */
 protected function _rawToConfig($_rawData, $_name)
 {
     $definition = self::getDefinition($_name);
     if (!$definition) {
         return is_array($_rawData) ? new Tinebase_Config_Struct($_rawData) : $_rawData;
     }
     if ($definition['type'] === self::TYPE_OBJECT && isset($definition['class']) && @class_exists($definition['class'])) {
         return new $definition['class']($_rawData != "null" ? $_rawData : array());
     }
     switch ($definition['type']) {
         case self::TYPE_INT:
             return (int) $_rawData;
         case self::TYPE_BOOL:
             return (bool) (int) $_rawData;
         case self::TYPE_STRING:
             return (string) $_rawData;
         case self::TYPE_FLOAT:
             return (double) $_rawData;
         case self::TYPE_DATETIME:
             return new DateTime($_rawData);
         case self::TYPE_KEYFIELD:
             return Tinebase_Config_KeyField::create($_rawData, isset($definition['options']) || array_key_exists('options', $definition) ? (array) $definition['options'] : array());
         default:
             return is_array($_rawData) ? new Tinebase_Config_Struct($_rawData) : $_rawData;
     }
 }