Doltengをいじってみた
Doltengは非常に便利なんだけど、マッピングの情報表示がイマイチ。
どこがって、フィールドはちゃんとマッピングのマーカーが出るんだけど、
メソッドは出ないんだよね。
意外とメソッドを使う時が多いので、ちゃんとマッピングされてるか確認するには、動かしてみるしかない。
たまーにスペルミスとかあるので、なんとかならんもんかと思ってた。
↓これでマーカーが出てほしい!
//Page
public Date birthday;
public Integer getAge() {
// birthdayから年齢を計算
}
//html
<input id="age"/>
悩んでても始まらないので、Doltengカスタマイズして自分だけでも使うかーってことで、
SVNからソースをとってきて、ざっと眺めてみた。
どうやら、
org.seasar.dolteng.eclipse.operation.PageMarkingJob
がマーカーの設置をしているようだ。
PageMarkingJob#processMapping()
がマーカーのつける場所を探しては、つけてをやっているようだ。
FuzzyXMLNodeってのが、HTMLのノード情報ぽい。
これをforeachして、フィールドのMapから一致するものをさがして、
マーカーをつけているようだ。
と、よく見たら
mem = findMember(methodMap, mappingKey);
という1行を発見。
methodMapってのは、もしかしてメソッドのMap(そのままやんw)じゃないのかい?
これ、ちゃんとメソッドまで見てるじゃん。
もしかして、最新のDoltengは対応してる?
実行してみる。
・・・やっぱり対応してない。
いやーもしかしてなぁ・・・
デバックしてみる。
mem = findMember(methodMap, mappingKey);
変数ビューで、それぞれの値を確認してみる。
methodMapは、やっぱりメソッドのMapのようだ。getAgeも入ってる。
mappingKeyは"age"。
ん?これは・・・
mem = findMember(methodMap, "get" + mappingKey);
実行。
う、動いたー!! これはバグだったのかねぇ・・・?