• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List

E:/E/GEAMP/www/openbiz/openbiz/bin/sysclass_inc.php

00001 <?php
00025 abstract class MetaObject
00026 {
00027 
00033     public $m_Name;
00034 
00040     public $m_Class;
00041 
00047     public $m_Package;
00048 
00054     public $m_Description;
00055     
00056     public $m_Access;
00057 
00058     function __construct(&$xmlArr)
00059     {
00060 
00061     }
00062     //function __destruct() {}
00063 
00070     protected function readMetadata(&$xmlArr)
00071     {
00072         $rootKeys = array_keys($xmlArr);
00073         $rootKey = $rootKeys[0];
00074         if ($rootKey != "ATTRIBUTES") {
00075             $this->m_Name = isset($xmlArr[$rootKey]["ATTRIBUTES"]["NAME"]) ? $xmlArr[$rootKey]["ATTRIBUTES"]["NAME"] : null;
00076             $this->m_Description = isset($xmlArr[$rootKey]["ATTRIBUTES"]["DESCRIPTION"]) ? $xmlArr[$rootKey]["ATTRIBUTES"]["DESCRIPTION"] : null;
00077             $this->m_Package = isset($xmlArr[$rootKey]["ATTRIBUTES"]["PACKAGE"]) ? $xmlArr[$rootKey]["ATTRIBUTES"]["PACKAGE"] : null;
00078             $this->m_Class = isset($xmlArr[$rootKey]["ATTRIBUTES"]["CLASS"]) ? $xmlArr[$rootKey]["ATTRIBUTES"]["CLASS"] : null;
00079             $this->m_Access = isset($xmlArr[$rootKey]["ATTRIBUTES"]["ACCESS"]) ? $xmlArr[$rootKey]["ATTRIBUTES"]["ACCESS"] : null;
00080         }
00081         else {
00082             $this->m_Name = isset($xmlArr["ATTRIBUTES"]["NAME"]) ? $xmlArr["ATTRIBUTES"]["NAME"] : null;
00083             $this->m_Description = isset($xmlArr["ATTRIBUTES"]["DESCRIPTION"]) ? $xmlArr["ATTRIBUTES"]["DESCRIPTION"] : null;
00084             $this->m_Package = isset($xmlArr["ATTRIBUTES"]["PACKAGE"]) ? $xmlArr["ATTRIBUTES"]["PACKAGE"] : null;
00085             $this->m_Class = isset($xmlArr["ATTRIBUTES"]["CLASS"]) ? $xmlArr["ATTRIBUTES"]["CLASS"] : null;
00086             $this->m_Access = isset($xmlArr["ATTRIBUTES"]["ACCESS"]) ? $xmlArr["ATTRIBUTES"]["ACCESS"] : null;
00087         }
00088     }
00089     
00090     public function getModuleName($name)
00091     {
00092        return substr($name,0,intval(strpos($name,'.')));
00093     }
00094 
00102     protected function readMetaCollection(&$xmlArr, &$metaList)
00103     {
00104         if (!$xmlArr)
00105         {
00106             $metaList = null;
00107             return;
00108         }
00109         if (isset($xmlArr["ATTRIBUTES"]))  $metaList[] = $xmlArr;
00110         else $metaList = $xmlArr;
00111     }
00112 
00119     protected function prefixPackage($name)
00120     {
00121         if ($name && !strpos($name, ".") && ($this->m_Package)) // no package prefix as package.object, add it
00122             $name = $this->m_Package.".".$name;
00123 
00124         return $name;
00125     }
00126 
00133     public function getProperty($propertyName)
00134     {
00135         // TODO: really like this?
00136         if (isset($this->$propertyName)) return $this->$propertyName;
00137         return null;
00138     }
00139 
00147     public function allowAccess($access=null)
00148     {
00149        if(CLI){
00150               return ALLOW;
00151        }
00152        if (!$access) $access = $this->m_Access;
00153         if ($access)
00154         {
00155               return BizSystem::allowUserAccess($access);
00156         }
00157         return ALLOW;
00158     }
00159     
00160     protected function getElementObject(&$xmlArr, $defaultClassName, $parentObj=null)
00161        {
00162               // find the class attribute
00163               $className = isset($xmlArr["ATTRIBUTES"]['CLASS']) ? $xmlArr["ATTRIBUTES"]['CLASS'] : $defaultClassName;
00164               
00165               if ((bool) strpos($className, "."))
00166               {
00167                      $a_package_name = explode(".", $className);
00168                      $className           = array_pop($a_package_name);
00169                      $clsLoaded = BizSystem::loadClass($className, implode(".", $a_package_name));
00170                      if (!$clsLoaded) trigger_error("Cannot find the load class $className", E_USER_ERROR);
00171               }
00172               //echo "classname is $className\n";
00173               $obj = new $className($xmlArr, $parentObj);
00174               return $obj;
00175        }
00176 }
00177 
00187 class MetaIterator implements Iterator
00188 {
00193     protected $m_prtObj = null;
00194 
00199     protected $m_var = array();
00200 
00209     public function __construct(&$xmlArr, $childClassName, $parentObj=null)
00210     {
00211         //if (is_array($array)) $this->var = $array;
00212         $this->m_prtObj = $parentObj;
00213         if (!$xmlArr) return;
00214 
00215         if (isset($xmlArr["ATTRIBUTES"]))
00216         {
00217             $className = isset($xmlArr["ATTRIBUTES"]['CLASS']) ? $xmlArr["ATTRIBUTES"]['CLASS'] : $childClassName;
00218               if ((bool) strpos($className, "."))
00219             {
00220               $a_package_name = explode(".", $className);
00221                 $className         = array_pop($a_package_name);
00222                 //require_once(BizSystem::getLibFileWithPath($className, implode(".", $a_package_name)));
00223                 $clsLoaded = BizSystem::loadClass($className, implode(".", $a_package_name));
00224             }
00225             //if (!$clsLoaded) trigger_error("Cannot find the load class $className", E_USER_ERROR);
00226             $obj = new $className($xmlArr, $parentObj);
00227             $this->m_var[$obj->m_Name] = $obj;
00228         }
00229         else
00230         {
00231             foreach ($xmlArr as $child)
00232             {
00233                 $className = isset($child["ATTRIBUTES"]['CLASS']) ? $child["ATTRIBUTES"]['CLASS'] : $childClassName;
00234 
00242                 if($className)
00243                 { //bug fixed by jixian for resolve load an empty classname
00244                     if ((bool) strpos($className, "."))
00245                     {
00246                         $a_package_name = explode(".", $className);
00247                         $className        = array_pop($a_package_name);
00248                         //require_once(BizSystem::getLibFileWithPath($className, implode(".", $a_package_name)));
00249                         $clsLoaded = BizSystem::loadClass($className, implode(".", $a_package_name));
00250                     }elseif($parentObj->m_Package){
00251                      /*if(is_file(BizSystem::getLibFileWithPath($className, $parentObj->m_Package))){
00252                             require_once(BizSystem::getLibFileWithPath($className, $parentObj->m_Package));
00253                      };*/
00254                         $clsLoaded = BizSystem::loadClass($className, $parentObj->m_Package);
00255                      }
00256                     //if (!$clsLoaded) trigger_error("Cannot find the load class $className", E_USER_ERROR);
00257                     $obj = new $className($child, $parentObj);
00258                     $this->m_var[$obj->m_Name] = $obj;
00259                 }
00260             }
00261         }
00262     }
00263 
00270     public function merge(&$anotherMIObj)
00271     {
00272         foreach($anotherMIObj as $key=>$value)
00273         {
00274             if (!key_exists($key,$this->m_var)) $this->m_var[$key] = $value;
00275         }
00276     }
00277 
00284     public function get($key)
00285     {
00286         return isset($this->m_var[$key]) ? $this->m_var[$key] : null;
00287     }
00288 
00295     public function set($key, $val)
00296     {
00297         $this->m_var[$key] = $val;
00298     }
00299 
00300        public function count()
00301     {
00302         return count($this->m_var);
00303     }    
00304     
00310     public function rewind()
00311     {
00312         reset($this->m_var);
00313     }
00314 
00320     public function current()
00321     {
00322         return current($this->m_var);
00323     }
00324 
00329     public function key()
00330     {
00331         return key($this->m_var);
00332     }
00333 
00338     public function next()
00339     {
00340         return next($this->m_var);
00341     }
00342 
00347     public function valid()
00348     {
00349         return $this->current() !== false;
00350     }
00351 }
00352 
00361 class Parameter
00362 {
00363     public $m_Name, $m_Value, $m_Required, $m_InOut;
00364 
00365     
00366     public function __construct(&$xmlArr)
00367     {
00368         $this->m_Name = isset($xmlArr["ATTRIBUTES"]["NAME"]) ? $xmlArr["ATTRIBUTES"]["NAME"] : null;
00369         $this->m_Value = isset($xmlArr["ATTRIBUTES"]["VALUE"]) ? $xmlArr["ATTRIBUTES"]["VALUE"] : null;
00370         $this->m_Required = isset($xmlArr["ATTRIBUTES"]["REQUIRED"]) ? $xmlArr["ATTRIBUTES"]["REQUIRED"] : null;
00371         $this->m_InOut = isset($xmlArr["ATTRIBUTES"]["INOUT"]) ? $xmlArr["ATTRIBUTES"]["INOUT"] : null;
00372     }
00373 
00380     public function getProperty($propertyName)
00381     {
00382         if ($propertyName == "Value") return $this->m_Value;
00383         return null;
00384     }
00385 }
00386 
00395 interface iSessionObject
00396 {
00397     public function setSessionVars($sessCtxt);
00398     public function getSessionVars($sessCtxt);
00399 }
00400 
00409 interface iUIControl
00410 {
00411     public function render();
00412 }
00413 
00422 class BDOException extends Exception
00423 {
00424 
00425 }
00426 
00435 class BFMException extends Exception
00436 {
00437 
00438 }
00439 
00448 class BSVCException extends Exception
00449 {
00450 
00451 }
00452 
00461 class ValidationException extends Exception
00462 {
00463     public $m_Errors;   // key, errormessage pairs
00464     public function __construct($errors)
00465     {
00466         $this->m_Errors = $errors;
00467         $message = "";
00468         foreach ($errors as $key=>$err) {
00469             $message .= "$key = $err, ";
00470         }
00471         $this->message = $message;
00472     }
00473 }
00474 
00475 ?>

Generated on Thu Apr 19 2012 17:09:13 for openbiz by  doxygen 1.7.2