別のセイロン クラスのメタ モデルに基づいてクラスを生成するコード ジェネレーターを作成したいと考えています。コンパイル時にコード ジェネレーターを実行したい。これを行うための最良の方法は何ですか。おそらくgradleまたはceylonビルドシステム用のプラグインを作成することでこれを達成できますが、より簡単なソリューションを望んでいます. 残念ながら、セイロンではコード ジェネレーターのサポートは見当たりません。また、セイロンでのコード ジェネレーターの計画はありますか?
メタモデルを使用して次のようなクラスを見るセイロン用の単純な Web フレームワークを作成することを考えているため、このコード ジェネレーターを作成したいと思います。
shared class Controller() {
shared void doSomething() => print("did it!");
}
Spring MVC のようになる予定です。このフレームワークは、誰かが次のような AJAX 呼び出しを記述できるようにするコントローラー クラスから安らかな API を作成します。
$http.get("/Controller/doSomething");
GWTのようなことをして、もっと便利に、高レベルに、シンプルにしたい。次のようなクラスを自動的に生成するコード ジェネレーターを作成したいと考えています。
shared class RemoteController() {
shared void doSomething() {
$http.get("/Controller/doSomething");
}
}
RemoteController は、ユーザーのブラウザーで javaScript として実行され、クライアント側の ceylon コードが次のような Ajax 呼び出しを実行できるようにします。
RemoteController().doSomething();
それは、サーバー上で Controller().doSomething() を呼び出すことになるので、「やった!」印刷されます。