public interface OperateHandlerChain extends OperateHandler
处理器链中同时拥有数据源拦截器链interceptors()与操作处理器链handlers()两条"链"。
执行时,应当先执行拦截器链,再执行处理器链。
数据源拦截器链可以视为由多个拦截器组成,可按一定规则排序的纯粹责任链,约定:
当调用OperateHandler.readFromSource(Object, PropertyMapping, Operation)时,
链上所有SourceOperateInterceptor.supportInterceptReadSource(Object, PropertyMapping, Operation)返回为ture的节点都应当被执行;
当调用OperateHandler.writeToTarget(Object, Object, PropertyMapping, AssembleOperation)时,
链上所有SourceOperateInterceptor.supportInterceptSourceWrite(Object, Object, PropertyMapping, AssembleOperation)返回为ture的节点都应当被执行。
操作处理器可以视为由多个处理器组成,看按一定规则排序的不纯责任链,约定:
当调用OperateHandler.readFromSource(Object, PropertyMapping, Operation)时,
排序最靠前,且OperateHandler.sourceCanRead(Object, PropertyMapping, Operation)返回为ture的节点才会被执行;
当调用OperateHandler.writeToTarget(Object, Object, PropertyMapping, AssembleOperation)时,
排序最靠前,且OperateHandler.targetCanWrite(Object, Object, PropertyMapping, AssembleOperation)返回为ture的节点才会被执行;
OperateHandler,
SourceOperateInterceptor,
AbstractOrderlyHandlerChain| 限定符和类型 | 方法和说明 |
|---|---|
OperateHandlerChain |
addHandler(OperateHandler handler)
添加处理器节点
|
OperateHandlerChain |
addInterceptor(SourceOperateInterceptor interceptor)
注册操作拦截器
|
List<OperateHandler> |
handlers()
获取操作处理器链
|
List<SourceOperateInterceptor> |
interceptors()
获取操作拦截器链
|
default Object |
tryReadFromSource(Object source,
PropertyMapping property,
Operation operation)
|
default void |
tryWriteToTarget(Object sourceData,
Object target,
PropertyMapping property,
AssembleOperation operation)
|
readFromSource, sourceCanRead, targetCanWrite, writeToTargetcomparator, compareTo, getActualOrder, getOrderList<SourceOperateInterceptor> interceptors()
OperateHandlerChain addInterceptor(SourceOperateInterceptor interceptor)
interceptor - 拦截器List<OperateHandler> handlers()
OperateHandlerChain addHandler(OperateHandler handler)
handler - 处理器节点default Object tryReadFromSource(Object source, PropertyMapping property, Operation operation)
OperateHandler.sourceCanRead(Object, PropertyMapping, Operation)方法返回ture,
则返回OperateHandler.readFromSource(Object, PropertyMapping, Operation)的返回值,否则直接返回nullsource - 数据源property - 待处理字段operation - 字段配置default void tryWriteToTarget(Object sourceData, Object target, PropertyMapping property, AssembleOperation operation)
OperateHandler.targetCanWrite(Object, Object, PropertyMapping, AssembleOperation)返回ture,
则调用OperateHandler.writeToTarget(Object, Object, PropertyMapping, AssembleOperation)sourceData - 从数据源获取的数据target - 待处理对象property - 待处理字段operation - 字段配置Copyright © 2022. All rights reserved.