#java #gwt #requestfactory
#java #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% клиентский код, и вопрос только в том, куда мне поместить реализацию.
Ответ №1:
Комментарии:
1. Или мы должны просто дождаться поддержки Java 8?
2. Никаких обновлений. И я не уверен, как «методы по умолчанию» работают с AutoBean и RequestFactory; уверен, что они просто отключатся; может быть, попробовать с GWT 2.8.0-SNAPSHOT? (пока не уверен, что он поддерживает методы по умолчанию)
Ответ №2:
Я не знаю простого способа. Вы могли бы использовать оболочку и делегировать
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";
}
}
но вам придется вручную переносить все ваши прокси-объекты на клиент, когда вы получаете их обратно с сервера.