+*+*Rose/Smalltalk Private Extension <> version 1.0*+*+ Copyright(C) 1997 Masashi Umezawa 1.概要: Rose/Smalltalkのフォワードによって生成されたアノテーション情報をもとに、 Objyctivity Smalltalk Interfaceに対応したクラス定義を自動生成するユーティリティ 2.対応環境: Windows-NT 3.51,4.0 Windows95 3.必要ソフトウェア: VisualWorks2.5.* Rose/Smalltalk 3.0J Rose/Smalltalk Private Extension 3.1 Objectivity Smalltalk Interface 3.8.*、4.0 4.構成: Rose2Obj.txt -> このファイル Rose2Obj.st -> RoseSmalltalk PrivateExtension Rose2ObjyDefinerソース 5.インストール方法: Rose2Obj.stをファイルイン (Objectivity Smalltalk Interfaceがインストールされていることが必要です) 6.説明: ファイルインすると以下のクラスがインストールされます。 a)Rose2ObjyDefiner -> Rose2Definder本体 b)Rose2ObjyDefinerGUI -> Rose2Definer操作用フロントエンドGUI c)Rose2ObjyElement -> 未推定変数生成用クラス d)Rose2ObjyAttribute -> 属性生成用クラス e)Rose2ObjyHas -> 保有生成用クラス f)Rose2ObjyRelation -> 関連生成用クラス g)Rose2ObjyMockClass -> Rose2DefinerのHelperクラス h)Rose2ObjyMockSelectionClass -> Rose2DefinerのHelperクラス i)Rose2ObjyVariableFilter -> Rose2DefinerのHelperクラス Rose2ObjyDefinerGUI openでGUIが開きます。 クラスカテゴリを指定(ワイルドカード可能)するとクラスリストにクラスが表示されます。 クラスリストからクラスを選択すると、Rose2ObjyDefinerはアノテーション情報を読み取り 関連リスト、保有リスト、属性リストに表示します。 ここで生成を選択すると、アノテーションに従い、通常のSmalltalkのクラス定義をObjy/ST に対応した形式に再定義します。 例) Baloonクラスのコメントに以下のアノテーションの記述があり、 //## Role: cargo: Navigable ByReference Protected : Cargo {1} 3244EF14003C //## Association: rope; Cargo : 3244EF14003C Cargoクラスのコメントに以下の記述があった場合 //## Attribute: name: Private : String //## Role: baloons: Navigable ByReference Protected : Baloon {n} 3244EF14003C //## Association: rope; Baloon : 3244EF14003C 生成されるクラスの定義は次のようになります。 Object subclass: #Cargo instanceVariableNames: 'name baloons > ' classVariableNames: '' poolDictionaries: '' category: 'RosePrivateExtention-R20Definer' アノテーションで保有があった場合は、相手先の型(クラス)が指定されている場合に限り、 Objy/STのRelationに変換して生成させることができます。 Objy/STの形式で再定義されたクラスをもとに戻したい場合は、削除ボタンをクリックします。 7.備考: Rose2ObjyDefiner version 1.0はフリーウェアです。 Free Software Foundation が公表した GNU 一般公有使用許諾の「バージョン 1」あるいは それ以降の各バージョンの中からいずれかを選択し、そのバージョンが定める条項に従って 本プログラムを再頒布または変更することができます。 バグレポートは歓迎いたしますが、サポートは一切行えませんのでご了承ください。 mail: umejava@mars.dtinet.or.jp +*+*Rose/Smalltalk Private Extension <> version 1.0*+*+