问题描述
我们有一个如下所示的 VDM 辅助类
MmpurReqFluentHelper helper = (MmpurReqFluentHelper) valueHelpService.getAllMmpurReq();
helper.filter(FilterExpressionHelper<>);
我们如何将给定的包含过滤器(图片中附有结构)的 StructuredQuery 转换为上一行中给出的辅助类所需的 FilterExpressionHelper?
解决方法
编辑:实际上有一个方便的 API:
final StructuredQuery query;
final MmpurReqFluentHelper helper;
ValueBoolean filter = query.getFilters().stream().reduce(ValueBoolean::and).orElse(null);
helper.filter(new UncheckedFilterExpression<>(filter));
不应在 I changed the address but the zipcode and city and state are not getting changed API (StructuredQuery
) 上使用来自 Generic OData Client API (MmpurReqFluentHelper
) 的类。但是,您可以应用以下解决方法:
final StructuredQuery query;
final MmpurReqFluentHelper helper;
helper.filter(new FilterExpressionHelper<EntityT>() {
@Override
@Nullable
FilterExpression toLegacyFilterExpression() {
throw new IllegalStateException();
}
@Override
@Nullable
ValueBoolean toClientFilterExpression() {
return query.getFilters().stream().reduce(ValueBoolean::and).orElse(null);
}
});
请将 EntityT
替换为相应的实体类型引用。