ログ日記

作業ログと日記とメモ

GWTで使えるクラスのメモ

twitterにも書いたんだけど、どうしてGWTでKeyクラスが使えるんだろうと思っていた。
それから、Datastore.keyToString(model.getKey())をGWTのクライアント側でやりたいよねと。


でも試しにmodel.getKey().getName()を実行してみたらちゃんと取得できた。
GWTのクライアント側でもKeyクラスのメソッドは使えるようだ。
ということは、KeyがStringで生成されていることが確定しているならgetNameを呼び出せば元の文字列が取得できるわけだ。
わざわざサーバーに問い合せてサービスの方でkeyToStringを呼び出すか、Keyの文字列をコピーして別のフィールドに持たせようかと思っていたところだった。


何故だろうとソース探索。
GWTにはGAE/Jのコードは入ってなさそうだ。
それからslim3のコードを見ていくと、org.slim3.gwt.emul.S3Emulation.gwt.xmlのファイルがある。
そこには前に書いた super-source *1 があり、ルートが指定されている。
改めてよく見るとSlim3に com.google.appengine.datastore.Key_CustomFieldSerializer などのクラスがある。
KeyなどのappengineのクラスはソースファイルがないのでGWT用のJavaScriptは生成できないが、ここでシリアライザを使ってGWTでも使えるようにしているようだ。
公式にGWTがサポートされているっていうのはいいね。