Next: , Previous: ユニット, Up: Top


5 ツール/ユーティリティ

5.1 構成要素設定メソッド生成ツール

シミュレーション構成要素は,先に述べたMicsElementを継承し,幾つかのインターフェースを実装しなければならない. これらの実装において,MICSのフレキシビリティを保つためには, 適切にMicsElementinitializeをオーバライドすることが必要である.また,このメソッドの中身は各ユニットの実装者に任されているため,そのドキュメントもまた重要である. そこで,MICSでは,net.wasamon.mics.tools.MakeInitializeというツールを用意している.

5.1.1 使い方

     
     java net.wasamon.mics.MakeInitialize [-o 出力フォーマット] ソースファイル
     

出力フォーマットは,現在javaとHTMLをサポートしている.またオプションの指定を省略した場合には,Javaのソースコードを出力する.

5.1.2 ソースファイルの書き方

MakeInitializeは,XMLで記述した設定ファイルの構成からJavaのソースコードや,HTML形式によるドキュメントなどを生成することができるツールである.MakeInitializeの入力XMLの形式を次に示す.

initalize name=クラス名
MakeInitializeに与えるソースのルートエレメント.属性nameで,クラス名を指定する.これは,クラスのトップの設定に対応する.
attribute name=属性名 type=
現在のエレメントレベルにおいて指定すべき属性の名前と,Javaにおける型.型はStringとintだけが認められる.intは,Integer.parseIntを用いてプリミティブのint型に変換される.
child name=エレメント名 repeatable=true|false
現在のエレメントレベルの子エレメント.nameで指定した名前の要素を子エレメントに持てることを指示する.repeatablefalseの場合,設定ファイル中では,この要素を必ず一つ指定しなければならない.一方repeatabletrueの場合には,この要素を幾つでも指定することが(あるいは指定しないことが)できる.
exec
このエレメントの設定に対して,実行すべきJavaのソースコード.この部分では,同じエレメントレベルのattributeエレメントのnameで指定した文字列に対応する値を$変数名として利用することができる.

たとえば,SimpleProcessorの設定ファイルは次のように構成されている.

     
     <initialize name="net.wasamon.mics.processor.SimpleProcessor">
       <attribute name="memory" type="int"/>
       <child name="channel" repeatable="true">
         <attribute name="id" type="String"/>
         <attribute name="offset" type="int"/>
         <exec>
     channelManager.add($id, $offset);
         </exec>
       </child>
       <exec>
     memory = new RandomAccessMemory($memory);
       </exec>
     </initialize>
     

これは,次に示すSimpleProcessorへの設定ファイルを受け付ける.

     
       <element id="proc0" class="net.wasamon.mics.processor.SimpleProcessor" memory="2048">
         <channel id="bus0" offset="2048"/>
       </element>