RequestFactoryに頭を悩ませようとしていますが、いくつか問題があります。不変タイプ(joda-time LocalDate)のvalueproxyであるプロパティを持つentityproxyがあり、サーバーへの呼び出しでこのentityproxyを使用する際に問題が発生しています。
entityproxyにプロパティのゲッターのみを含め、valueproxyにプリミティブプロパティのゲッターのみを含めることで、プロパティを読み取り専用にしました。
ただし、私が知る限り、サービスメソッドの呼び出しでentityproxyを引数として使用すると、参照されているvalueproxyは自動的に編集済みとしてマークされ、そのすべてのプロパティがデルタに含まれますか?
これにより、ReflectiveServiceLayerはLocalDateに欠落しているセッターに関する例外をスローします。
私はこれを回避するために「setProperty」をオーバーライドするServiceLayerDecoratorを実装するというアイデアをいじくり回してきましたが、それが良い解決策であるかどうかはわかりません。これを修正する「適切な」方法はありますか?理想的には、AbstractRequestContextに、サーバーへの呼び出しに不変のプロパティを含めないようにします。
GWT2.3を使用しています
編集:私はこのような回避策を作成しましたが、これが正しいアプローチであるかどうかはまだわかりません:
public class ImmutablePropertyFixServiceLayer extends ServiceLayerDecorator {
@Override
public void setProperty(Object domainObject, String property, Class<?> expectedType, Object value) {
Method setter = getTop().getSetter(domainObject.getClass(), property);
if (setter != null) {
super.setProperty(domainObject, property, expectedType, value);
} else {
//System.out.println(domainObject.getClass().getName() + "." + property + " doesn't have a setter");
}
}
}