我正在使用GraniteDS Actionscript 代码生成模板,让我获取一个 Java 对象并将其转换为一个 Actionscript 类。
它主要用于 BlazeDS Java 到 Flash 的通信,但我正在调整它以使用 XStream/JETTISON JSON 与 JSON Web 服务一起使用。
是否可以使用 Granite DS Groovy 模板来检查 Java 类上的注释并使用它来生成代码绑定?
例如,我创建了一个 @XStreamAlias 以在通过 JSON 发送时缩短类名,但我还需要我的 Actionscript 生成的类来支持它。
package com.webwars.game;
@XStreamAlias("UnitStack")
public class UnitStack implements Serializable {
我希望我的 Actionscript 生成的代码是:
package com.webwars.gameplatform.combat.pvp {
[Bindable]
[RemoteClass(alias="UnitStack")]
public class UnitStack extends UnitStackBase {
使用 groovy 模板可以做到这一点吗?
我似乎找不到任何有关 GraniteDS Groovy 模板 JavaType 中可用属性的文档?GraniteDS 站点上列出的 JavaType 文档指向一个损坏的 Javadoc 链接。
例如,在我的 bean.gsp 中,我可以执行以下操作:
<%
///////////////////////////////////////////////////////////////////////////
// Use the XStreamAlias annotation as the classname
def alias = jClass.qualifiedName;
if (jClass.hasAnnotation("XStreamAlias)) {
alias = jClass.getAnnotation("XStreamAlias");
}
%>
[Bindable]
[RemoteClass(alias="${alias}")]
public class ${jClass.as3Type.name} extends ${jClass.as3Type.name}Base {<%