2011-11-02 71 views
2

是否可以向GWT RequestFactory的代理类添加方法?假设我有这个:GWT RequestFactory - 将自定义方法添加到代理类?

@ProxyFor(value = MyEntity.class) 
interface MyEntityProxy extends EntityProxy { 
    String getData(); // got it on server side 
} 

GetData()在服务器端支持,没关系。如果我想添加什么的方法是这样的:

@ProxyFor(value = MyEntity.class) 
interface MyEntityProxy extends EntityProxy { 
    String getData(); // got it on server side 
    String getDataAndAppendQwerty(); // want this one on client side 
} 

我想手动执行getDataAndAppendQwerty()。这是100%的客户端代码,问题在于我应该在哪里实施。

回答

3

答案将是AutoBean categories,但它们是0123F在RequestFactory中浮出水面。

+0

你好,托马斯,有关该主题的任何更新? – damluar

+0

或者我们应该等待Java 8的支持? – damluar

+0

没有更新。我不确定“默认方法”如何与AutoBean和RequestFactory一起工作;很确定他们会吹灭;也许尝试使用GWT 2.8.0-SNAPSHOT? (不确定它支持默认方法) –

0

我不知道一个简单的方法。你可以使用一个包装并委托

public class MyEntityProxyExt implements MyEntityProxy { 

    private final MyEntityProxy proxy; 

    public MyEntityProxyExt(MyEntityProxy proxy) { 
     this.proxy = proxy; 
    } 

    @Override 
    public String getData() { 

     return proxy.getData(); 
    } 

    public Object getDataAndAppendQwerty() { 

     return proxy.getData() + "qwerty"; 
    } 
} 

但你必须手动包裹在客户端上所有的代理对象时,你让他们从服务器返回。