<?php //autoload configuration class AutoloadData { private static $integration_dirs = NULL; private static $ihm_dirs = NULL; private static $cache = NULL; public static function integration_dirs() { if (self::$integration_dirs == NULL) { self::$integration_dirs = array( 'InputOutput', 'InputOutput/IHMImpl', 'InputOutput/IHMImpl/Config', 'InputOutput/IHMImpl/Params', 'InputOutput/IHMImpl/Params/DataMiningImpl', 'InputOutput/IHMImpl/Params/StatisticsImpl', 'InputOutput/IHMImpl/Params/DownloadImpl', 'InputOutput/IHMImpl/Params/PlotImpl', 'InputOutput/IHMImpl/Params/GeneratorImpl', 'InputOutput/IHMImpl/Params/GenInfoParamImpl', 'InputOutput/IHMImpl/Process', 'InputOutput/IHMImpl/ParamInfo', 'InputOutput/IHMImpl/Tools', 'InputOutput/IHMImpl/TimeTables', 'InputOutput/TestImpl', 'InputOutput/WSImpl', 'InputOutput/WSImpl/Config', 'InputOutput/WSImpl/Process', 'InputOutput/WSImpl/Params/DownloadImpl', 'InputOutput/WSImpl/Params/PlotImpl', 'InputOutput/WSImpl/Tools', 'InputOutput/WSImpl/TimeTables', 'InputOutput/SharedObjectsUpdater', 'InputOutput/SharedObjectsUpdater/TimeTables', 'Request', 'Request/Config', 'Request/ParamsRequestImpl', 'Request/ParamsRequestImpl/Nodes', 'Request/ParamsRequestImpl/Nodes/Infos', 'Request/ParamsRequestImpl/Nodes/Params', 'Request/ParamsRequestImpl/Nodes/Requests', 'Request/ProcessRequestImpl', 'Request/ProcessRequestImpl/Process', 'Request/TTRequestImpl', 'Request/ParserRequestImpl', ); } return self::$integration_dirs; } public static function ihm_dirs() { if (self::$ihm_dirs == NULL) { self::$ihm_dirs = array( IHM_SRC_DIR.'/php/classes', IHM_SRC_DIR.'/php/RemoteDataCenter', IHM_SRC_DIR.'/php/WebServices', IHM_SRC_DIR.'/php/WebServices/Client' ); } return self::$ihm_dirs; } public static function get_cache($class_name) { if (self::$cache == NULL) { self::$cache = array(); } if (isset(self::$cache[$class_name])) { return self::$cache[$class_name]; } return NULL; } public static function set_cache($class_name, $file) { if (self::$cache == NULL) { self::$cache = array(); } self::$cache[$class_name] = $file; } } function amdaintegration_autoload($class_name) { $file = AutoloadData::get_cache($class_name); if (isset($file)) { require $file; return; } $file = __DIR__.'/'.$class_name.'.php'; if (file_exists($file)) { require $file; AutoloadData::set_cache($class_name, $file); return; } foreach(AutoloadData::integration_dirs() as $dir) { $file = __DIR__.'/'.$dir.'/'.$class_name.'.php'; if (file_exists($file)) { require $file; AutoloadData::set_cache($class_name, $file); return; } } foreach(AutoloadData::ihm_dirs() as $dir) { $file = $dir.'/'.$class_name.'.php'; if (file_exists($file)) { require $file; AutoloadData::set_cache($class_name, $file); break; } } } spl_autoload_register('amdaintegration_autoload'); ?>