1: <?php
 2: 
 3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 
14: 
15: defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
16: 
17: 18: 19: 20: 21: 22: 
23: class cCodeGeneratorFactory {
24: 
25:     26: 27: 28: 29: 30: 31: 32: 33: 34: 
35:     public static function getInstance($name = '') {
36:         global $cfg;
37: 
38:         if ($name == '') {
39:             $name = $cfg['code_generator']['name'];
40:         }
41: 
42:         if ($name == 'Factory' || $name == 'Abstract') {
43:             throw new cInvalidArgumentException('Invalid name passed to cCodeGeneratorFactory: ' . $name . '!');
44:         }
45: 
46:         $className = 'cCodeGenerator' . $name;
47:         if (!class_exists($className)) {
48:             $fileName = $name . '.class.php';
49:             $path = str_replace('\\', '/', dirname(__FILE__)) . '/';
50:             if (!cFileHandler::exists($path . $fileName)) {
51:                 throw new cInvalidArgumentException('The classfile couldn\'t included by cCodeGeneratorFactory: ' . $name . '!');
52:             }
53: 
54:             include_once($path . $fileName);
55:             if (!class_exists($className)) {
56:                 throw new cInvalidArgumentException('The class isn\'t available for cCodeGeneratorFactory: ' . $name . '!');
57:             }
58:         }
59: 
60:         return new $className();
61:     }
62: 
63: }
64: