<?php
/**
*
* ユーザ定義クラスローダの基底クラス
*
* PHP version 5
*
* @package    config_providers
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/
abstract class UserClassLoader extends CharcoalComponent implements IClassLoader
{

	/*
	 *    コンストラクタ
	 */
	public function __construct( String $name = NULL )
	{
		parent::__construct(s($name));
	}

	/*
	 * クラスをロード
	 */
	protected static function _loadClass( String $class_name, Vector $classPaths )
	{
		// ロード対象でない
		if ( !isset($classPaths[ $class_name ]) ){
			return FALSE;
		}

		// クラス名からクラスパスを取得
		$classPath = $classPaths[ $class_name ];

		// ソース読み込み
		require_once( $classPath );

		// クラスが未定義なら例外をスロー
/*
		if ( !class_exists("$class_name",FALSE) && !interface_exists("$class_name",FALSE) ){
			$msg = "Class[$class_name] is not defined in source file[$class_path]";
			_throw( new ClassNotFoundException("$class_name",$classPath,$msg) );
		}
*/

		return TRUE;
	}
}
return __FILE__;
