我想编写一个代码生成器,它根据另一个锡兰类的元模型生成一个类。我希望代码生成器在编译时运行。对我来说最好的方法是什么。我可能可以通过为 gradle 或 ceylon 构建系统编写插件来实现这一点,但我希望有一个更简单的解决方案。不幸的是,我没有看到锡兰对代码生成器的任何支持。另外,锡兰有代码生成器的计划吗?
我想编写这个代码生成器,因为我正在考虑为 ceylon 编写一个简单的 Web 框架,它使用元模型查看如下所示的类:控制器
shared class Controller() {
shared void doSomething() => print("did it!");
}
我计划让它像 Spring MVC 一样。这个框架将从 Controller 类中创建一个宁静的 API,允许人们像这样编写 AJAX 调用:
$http.get("/Controller/doSomething");
我想通过 GWT 之类的东西让事情变得更方便、更高级、更简单。我想创建一个自动生成这样的类的代码生成器:
shared class RemoteController() {
shared void doSomething() {
$http.get("/Controller/doSomething");
}
}
RemoteController 将作为 javaScript 在用户的浏览器中运行,并允许客户端 ceylon 代码执行 Ajax 调用,如下所示:
RemoteController().doSomething();
这最终会调用服务器上的 Controller().doSomething() 所以“做到了!” 将被打印。