もう 1 つ試すべきことは、GWT 2.1 で導入された新しいAutoBeanフレームワークです。
Bean のインターフェースとそれらを販売するファクトリーを定義すると、GWT が実装を生成します。
interface MyBean {
String getFoo();
void setFoo(String foo);
}
interface MyBiggerBean {
List<MyBean> getBeans();
void setBeans(List<MyBean> beans>;
}
interface Beanery extends AutoBeanFactory{
AutoBean<MyBean> makeBean();
AutoBean<MyBiggerBean> makeBigBean();
}
Beanery beanFactory = GWT.create(Beanery.class);
void go() {
MyBean bean = beanFactory.makeBean().as();
bean.setFoo("Hello, beans");
}
AutoBeanCodexを使用して、json との間でシリアル化できます。
AutoBean<MyBean> autoBean = AutoBeanUtils.getAutoBean(bean);
String asJson = AutoBeanCodex.encode(autoBean).getPayload();
AutoBean<MyBean> autoBeanCloneAB =
AutoBeanCodex.decode(beanFactory, MyBean.class, asJson );
MyBean autoBeanClone = autoBeanCloneAB.as();
assertTrue(AutoBeanUtils.deepEquals(autoBean, autoBeanClone));
それらはサーバー側でも機能します —AutoBeanFactoryMagic.create(Beanery.class)
の代わりに使用してGWT.create(Beanery.class)
ください。