我在使用 GraniteDS Actionscript代码生成模板 让我看Java目,并将其转换为传递的值执行一系列语句.

它主要用于这种形势Java到闪光的通信,但我适应工作和协调结果的方式web服务的使用坦克/抛弃手机中。

是否有可能使用的花岗岩DS常规模板,以检查上的注释Java类和使用产生的代码绑定?

例如创建一个@XStreamAlias缩短类名当通过发送式,但我需要我的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 {

这可能与常规模板?

我似乎找不到任何文档中关于什么性质提供GraniteDS常规模板JavaType?该文件列出在GraniteDS网站JavaType去一个破碎的如果是的话,为什么不试链接。

例如,在我的豆。普惠制可以我不是这样的:

<%

    ///////////////////////////////////////////////////////////////////////////
    // 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 {<%
有帮助吗?

解决方案

我发现了源代码JavaBean.java >> JavaAbstractType.java 其中包含的方法来获得类:

public abstract class JavaAbstractType implements JavaType {
    public Class<?> getType() {
        return type;
    }

因此,在时髦的 豆。gsp 模板我修改了它支持西河别类:

<%
    //////////////////////////////////
    /// Check if class has been Aliased by XStream
    def alias = jClass.qualifiedName;
    def actualClass = jClass.type;

    if (jClass.isAnnotationPresent(
                        com.thoughtworks.xstream.annotations.XStreamAlias.class)) {
        com.thoughtworks.xstream.annotations.XStreamAlias xstreamAlias = actualClass.getAnnotation(com.thoughtworks.xstream.annotations.XStreamAlias.class);
        alias = xstreamAlias.value();
    }
%>
[Bindable]
[RemoteClass(alias="${alias}")]
public class ${jClass.as3Type.name} extends ${jClass.as3Type.name}Base {<%
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top