« 「キミならどう書く 2.0 Round2」は難しいのか、つまらないのか |Main| 日記 »

« マウス操作のメタキーサポート | log | グラフ可視化ソフトGRINEditを使ったCollatz角谷問題の可視化その2 »

rpc用インターフェイス

現在、例えばlabelというフィールドを書き換えるメソッドはvoid rpc_label(Object)なのですけど、これはvoid setLabel(Object)にしてしまっても大丈夫な気がしてきました。XML-RPCで呼ぶときは"label"という文字列からリフレクションでrpc_labelメソッドを取得しているので、引数がObject型なのは変えられないのですが、メソッドの名前は別に今の物にこだわる必要はないわけです。で、Jythonインタプリタから操作する場合に、いちいちRPC用のと別にメソッドを用意しておくのは面倒です。そこでRPC用のメソッドを呼びたいわけですが、こちらは名前が裸で出るのでv.rpc_label("newLabel")なんて書くことになります。かっこわるいです。一方、v.setLabel("newLabel")ならごく自然です。

そもそも最初にsetLabelを使わなかったのは、JavaやPythonから呼び出す場合に引数がObjectでないといけないのはウザイかな、と思ったせいなのですが、上記の通りJythonからの呼び出しのために別口を作るのは面倒ですし、JavaやJythonからの呼び出しは同名でも別のシグネチャなら問題なく呼び出せますから、そもそもの心配が杞憂だったということになります。

むむ、メソッド名をsetBackgroundColorにするとXML-RPCの時に"BackgroundColor"をキーにするか、1文字目を大文字に変換する作業かどちらかになるか…。

大文字に変換するのの方が見栄えはよさそう。

GRINEditのデモ:Jythonコンソール。眺めるためのデモと読ませるためのチュートリアルの両方を作るべきなのかもしれない。これはソースコードを追おうとすると早すぎる。1ページに収まっているので、止まった後でじっくり読むことはできるけども。チュートリアルはNEXTボタンをぽちぽちクリックして自分のペースで読める方がいいし、デモはちまちまクリックさせられずにぼーっと眺められる方がいいのだろうと思う。

トラックバック(Trackback)

Trackback URL: http://www.nishiohirokazu.org/mt/mt-tb.cgi/201

ご意見・ご感想をお送りください(フィードバック)

(フィードバックはメールで送信され、基本的に表示されませんが、内容によっては公開させていただくこともございます。ご了承ください。Your comment doesn't appear the page immediately. If the comment has value to other people, it will be put on the page or subsequent entries. Thank you.)

上の情報は、いずれも未記入でかまいません。 All of above questions are optional.