JavaからRubyオブジェクト操作

イベントエディタはEclipsePluginで、RGSSのデータはRubyのオブジェクト
なので、DSLで読み込んだデータからRGSSで読めるイベントデータにするために
JavaからRubyオブジェクトを作らないとなりません。

いろいろ探すと、JRubyを使う場合に、JavaProxyとかで、ruby世界からJavaライブラリを読んだり操作するのは、結構あるんだけど逆があまり無いみたい。
基本的には、RubyObjectを作って、call系のメソッドを呼べば、Rubyのオブジェクトのメソッドとかも呼べるので、JavaからRuby世界のデータの操作もできるけど…イベントエディタで作るデータ量が多いので、なんとか楽したい。
JavaProxyみたいに、オブジェクトのメソッドがそのまま同じ様に呼べるといいよねぇ~。

前置きが長くなった。
簡単にありそうなんだけど、見つからないので作ってみることに(自転車の車輪作ってた嫌だな~とか思いつつ)。
作ってみると無い理由もなんとなくわかるけど、制限ありであってもいいかも?

RubyProxyと言う感じで、Javaのjava.lang.reflect.Proxyを使って、JavaBeanぽいインタフェースのプロキシクラスを作って…
メソッドを横取りしつつ、RubyObjectのメソッドを呼ぶようなものです。

jp.sourceforge.rgsslib.tools.j2rlib

まぁまぁ、良い感じに出来た。
RGSSに対応したイベントデータのインタフェースが必要だけど、Ruby操作がJavaから簡単にできそうなのはわかった。
たぶん問題ないと思うけど、これで作ったデータをRGSSで実際に読めるように試さないとなぁ~

もう1つ進めて…RGSSのRubyデータから自動的にインタフェースが出来ると楽かも?
インタフェースを用意するのが結構大変そうなので(汗

この辺は…xtextがつかえるかもしれない?

カテゴリー: RPGMKDT, イベントエディタ タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です