var\r
/**\r
* 全てのクラスのスーパークラスのようなもの。(ライブラリ内にカプセル化されているため、ユーザが触ることはありません)<br>\r
- * X.Class.create() で定義されたクラスのインスタンスが共通で備えるメソッド を確認してください。\r
+ * X_Class.create() で定義されたクラスのインスタンスが共通で備えるメソッド を確認してください。\r
* @class __ClassBase__\r
* @private\r
* @abstract\r
};\r
\r
this[ 'dispatch' ]( X_EVENT_KILL_INSTANCE );\r
- this._listeners && X_EventDispatcher_systemUnlisten( this );\r
+ this[ '_listeners' ] && X_EventDispatcher_systemUnlisten( this );\r
};\r
\r
for( p in instance ){\r
// --- interface ----------------------------------------------------------- //\r
// ------------------------------------------------------------------------- //\r
\r
+/*\r
+ * @enum {number}\r
+ * @const\r
+ */\r
+var X_Class = {\r
+ NONE : 0,\r
+ POOL_OBJECT : 1,\r
+ ABSTRACT : 2,\r
+ FINAL : 4,\r
+ SUPER_ACCESS : 8,\r
+ PRIVATE_DATA : 16,\r
+ SINGLETON : 32\r
+};\r
+\r
/**\r
* <p>Class を定義し システムの管理下に置く。\r
* <p>prototype 継承のブラウザ毎の差異も吸収し、 以下から最適な方法をしてくれる。\r
* </ol>\r
* \r
* <ol>\r
- * <li>X.Class.create( opt_settings, opt_name, opt_privateClass, opt_props ) でクラスを登録.\r
+ * <li>X_Class.create( opt_settings, opt_name, opt_privateClass, opt_props ) でクラスを登録.\r
* <li>コンストラクタ となるメソッドは、opt_props 内の Constructor : function( arg ){ ... }, に書く.\r
* <li>通常通り new で インスタンス生成\r
* <li>kill() でオブジェクトをクリーンして削除、pool が有効の場合は pool される.\r
* 設定なし。\r
* @const\r
*/ \r
- 'NONE' : 0,\r
+ 'NONE' : X_Class.NONE,\r
\r
/**\r
* インスタンスは破棄時(this.kill())に回収され、次回の new MyClass() 時に再利用されます。\r
* @const\r
*/\r
- 'POOL_OBJECT' : 1,\r
+ 'POOL_OBJECT' : X_Class.POOL_OBJECT,\r
\r
/**\r
* 定義するクラスは抽象クラスになります。new AbstractClass() とするとエラーになります。\r
* @const\r
*/\r
- 'ABSTRACT' : 2,\r
+ 'ABSTRACT' : X_Class.ABSTRACT,\r
\r
/**\r
* クラスの継承を禁止する。\r
* @const\r
*/\r
- 'FINAL' : 4,\r
+ 'FINAL' : X_Class.FINAL,\r
\r
/**\r
* 使用を中止。petanR ライブラリ使用プロジェクトから SUPER_ACCESS を消したらここも削除。\r
* @const\r
*/\r
- 'SUPER_ACCESS' : 8,\r
+ 'SUPER_ACCESS' : X_Class.SUPER_ACCESS,\r
\r
/**\r
* 内部コード、主に X.UI フレームワークに対して、フレーム外に露出するインスタンスとペアで動作する、シャドウなインスタンスの使用を宣言する。\r
* Javascript はインスタンス毎のカプセル化がとてもコスト高。微妙なコスト増で隠蔽されたインスタンスを使う。\r
* @const\r
*/\r
- 'PRIVATE_DATA' : 16,\r
+ 'PRIVATE_DATA' : X_Class.PRIVATE_DATA,\r
\r
/**\r
* 未実装。でも目印になるので付けておきましょう。\r
* @const\r
*/\r
- 'SINGLETON' : 32,\r
+ 'SINGLETON' : X_Class.SINGLETON,\r
\r
'create' : X_Class_create,\r
\r
// ------------------------------------------------------------------------- //\r
/**\r
* クラスを定義する。<br>\r
- * X.Class.create() によるクラス定義は必ずしもコンストラクタを必要としません。クラス定義時にコンストラクタが未設定の場合、スーパークラスがあればそのコンストラクタを使用します。\r
- * @alias X.Class.create\r
+ * X_Class.create() によるクラス定義は必ずしもコンストラクタを必要としません。クラス定義時にコンストラクタが未設定の場合、スーパークラスがあればそのコンストラクタを使用します。\r
+ * @alias X_Class.create\r
* @param {string} [displayName] クラスの名前\r
- * @param {number} [classSetting=0] X.Class.POOL_OBJECT | X.Class.FINAL など\r
+ * @param {number} [classSetting=0] X_Class.POOL_OBJECT | X_Class.FINAL など\r
* @param {__ClassBase__=} [privateClass] このクラスとペアで動作するシャドウクラス\r
* @param {object} [props={}] このクラスのメンバと関数。コンストラクタは Constructor と書くこと\r
* @return {__ClassBase__}\r
// クラス設定\r
classDef.setting = classSetting = args[ 0 ];\r
if( X_Type_isNumber( classSetting ) ){\r
- opt_pool = !!( classSetting & X.Class.POOL_OBJECT );\r
- opt_abstract = !!( classSetting & X.Class.ABSTRACT );\r
- opt_final = !!( classSetting & X.Class.FINAL );\r
- opt_private = !!( classSetting & X.Class.PRIVATE_DATA );\r
+ opt_pool = !!( classSetting & X_Class.POOL_OBJECT );\r
+ opt_abstract = !!( classSetting & X_Class.ABSTRACT );\r
+ opt_final = !!( classSetting & X_Class.FINAL );\r
+ opt_private = !!( classSetting & X_Class.PRIVATE_DATA );\r
if( opt_final && opt_abstract ){\r
X.Logger.critical( 'final & Abstract!' );\r
return;\r
if( X_Class_PRIVATE_CLASS_LIST.indexOf( args[ 0 ] ) !== -1 ){\r
privateDef = X_Class_getClassDef( args[ 0 ] );\r
if( privateDef.isPrivate !== true ){\r
- X.Logger.critical( 'PrivateClass not found! please, X.Class.create( X.Class.PRIVATE, {...} ).' );\r
+ X.Logger.critical( 'PrivateClass not found! please, X_Class.create( X_Class.PRIVATE, {...} ).' );\r
return;\r
} else\r
if( privateDef.Abstract === true ){\r
};\r
\r
/**\r
- * サブクラスを作ります。与える引数は X.Class.create と同じです。http://d.hatena.ne.jp/m-hiyama/20051018/1129605002\r
+ * サブクラスを作ります。与える引数は X_Class.create と同じです。http://d.hatena.ne.jp/m-hiyama/20051018/1129605002\r
* @alias __ClassBase__.inherits\r
- * @example var SubClass = SuperClass.inherits( 'Sub', X.Class.FINAL, { ... } );\r
+ * @example var SubClass = SuperClass.inherits( 'Sub', X_Class.FINAL, { ... } );\r
* @param {string} [displayName] クラスの名前\r
- * @param {number} [classSetting=0] X.Class.POOL_OBJECT | X.Class.FINAL など\r
+ * @param {number} [classSetting=0] X_Class.POOL_OBJECT | X_Class.FINAL など\r
* @param {__ClassBase__=} [privateClass] このクラスとペアで動作するシャドウクラス\r
* @param {object} [props={}] このクラスのメンバと関数。コンストラクタは Constructor と書くこと\r
* @return {__ClassBase__}\r
args.shift();\r
} else {\r
// クラス設定がない場合、親からコピーして、Abstract flag は落とす??\r
- classSetting = superDef.setting;// &= ~X.Class.ABSTRACT;\r
+ classSetting = superDef.setting;// &= ~X_Class.ABSTRACT;\r
};\r
- if( superDef.isPrivate ) classSetting = classSetting | X.Class.PRIVATE_DATA;\r
+ if( superDef.isPrivate ) classSetting = classSetting | X_Class.PRIVATE_DATA;\r
\r
params.push( classSetting );\r
\r
} else {\r
X_Class_traits = new Super( X_Closure_COMMAND_DROP );\r
};\r
- klass = X.Class.create.apply( X.Class, params );\r
+ klass = X_Class_create.apply( X.Class, params );\r
X_Class_traits = null;\r
\r
def = X_Class_getClassDef( klass );\r