NLS
とあるプラグインのソースを見ていて、ある要素をCtrl+左クリックしたら、
なぜかプロパティファイルにジャンプしたので、ちょっとちびった。
普通はJavaファイルとかに飛ぶはずなのに、なぜプロパティファイルに
飛ぶんだろーと思って調べていくと、プロパティファイルを読み込んで
保持しておくという枠組みがEclipseに始めから用意されているらしい。
具体的には、日本だとhoge_ja.propertiesだしデフォルトはhoge.propertiesといった
ファイルの内容を、勝手に読み込んでフィールド変数に保持させてくれるようになっている。
この機能を利用するコードは、こんな感じ。
public class HogeMessages extends NLS {
private static final String BUNDLE_NAME= "hoge.foo.messages";
public static String testProp1;
static {
NLS.initializeMessages(BUNDLE_NAME, HogeMessages.class);
}
}
こうしておくと、勝手にロケールを考慮したプロパティファイルを探し、
そのファイルに定義されているtestProp1というキーの値を
フィールド変数testProp1に設定してくれる。
なので、この値を使う際のコードは、このようになる。
HogeMessages.testProp1
で、このtestProp1をCtrl+左クリックすると、
プロパティファイルに飛ぶ仕組みになっているというわけ。
でも、飛び先のプロパティファイルはロケールは考慮されない。
とはいえ、こんなところまで作りこまれているとはなぁ。
んじゃー試しに、、、と思って、フィールドtestProp1の名前をリファクタリングしたら、
さすがにプロパティファイルのキー名までは変わらなかったことはヒミツ。