継承あさがお

世の中には,型番だけ違ってBSDLが似通っているものが結構あります.Asagao に近いところだと,BF533/532/531とか.
一方で,リストボックスにBF533しかないと「532/531は無いの?」と聞いてくるユーザは居ます.それらが互換だと解っていても聞いてくる人も何故か居たりします.
まあ,ユーザインタフェースって,ロジックだけでは語れない不思議なところがあります.


だからといって,設定のコピペを繰り返すと,そこはかとなく保守性が下がってきます.


Eclipse/CDTは,その辺のツールベンダ地獄を良く知っていて,gcc ⇒ 特定のgcc ⇒ 特定のランタイム用設定 のように,設定に継承関係を持たせられるようにしてあります.


Asagao でも,定義の継承はできたほうがよいと思って,パッチを作りました.

使い方は,こんな感じ.

  <target id="adi-corp">
    <vender>Analog Devices</vender>
    <hidden/>
  </target>

  <target id="adsp-bf533" extends="adi-corp">
                <!-- target name ( board or device ) -->
                <name>ADSP-BF533</name>
(中略)
  </target>

  <target extends="adsp-bf533">
    <name>ADSP-BF532</name>
  </target>

  <target extends="adsp-bf533">
    <name>ADSP-BF531</name>
  </target>

adi-corp にある タグは,そのターゲットが抽象クラスでありUIに表示されないことを示します.hidden属性以外の全ての属性は継承され,派生クラスに定義が有る場合はオーバーライドされます.


あ,言うまでもないですが,従来の設定ファイルとの互換性は保てています.