OperateConfigurationParser提供一些基本实现BeanPropertyFactory抽象类,提供基本逻辑封装与缓存功能OperateHandler的基本实现OperateProcessor的基础实现OperationExecutor初步实现,提供基本的装配与装卸操作的收集处理。Collections.emptyList()
Object: 适配为Collections.singletonList(Object)
Map: 适配为Map.entrySet();
Collection: 强转为Collection集合
Array: 使用Arrays.asList(Object[])转为集合;
BeanPropertyBeanPropertyMethodInvoker实现Assemble.namespace()获取数据源并填充到当前对象。BeanIntrospectContainer容器装配EnumDictContainer容器装配KeyIntrospectContainer容器装配KeyValueContainer容器装配MethodSourceContainer容器装配BeanOperationConfiguration构建操作配置实例AssembleOperation的通用实现DisassembleOperation的通用实现BeanFactory工具类GlobalConfiguration的通用实现PropertyMapping的通用实现Assembler实现,允许基于反射完成对JavaBean的装配操作Disassembler实现,允许基于反射完成对JavaBean的装卸操作OperateProcessor实现OperateConfigurationParser包装类,基于ConfigurationCache为包装的解析器提供解析配置缓存功能Operations注解,生成配置类OperationConfiguration.getAssembleOperations()
与OperationConfiguration.getDisassembleOperations()Orderly.getOrder()的返回值比较两个实例的大小ConfigOption解析器,用于快速搭建带缓存功能的注解处理器OperationConfiguration的缓存。AssembleOperation配置完成对一批对象的装配处理的“车间”。DynamicDisassembleOperation一致,但是代表的类型不确定的装卸字段,
用于处理类似字段类型是泛型、接口或父类的情况。EmptyPropertyMapping.instance()方法使用它Container实现MapAccessor以便根据“xx.xx”格式的表达式访问Map集合数据Assemble与Disassemble注解,生成配置类MethodAccessOrder注解,则其对应的方法返回值应当与注解值保持一致,
若不一致时,应当以Order为准。BeanProperty实例ProcessorComponent注解,则应当优先返回ProcessorComponent.value()DynamicDisassembleOperation.resolve(Object)将其转为正常的DisassembleOperation使用Collection集合,
则将递归遍历,直到获取到第一个非数组或Collection集合的元素,
作为实际待解析的对象。Operation.getTargetProperty()对应key值的情况下生效Container实现ProcessResult注解方法返回值处理切面MethodSourceBean.methods()中声明或者通过在方法上添加MethodSourceBean.Method注解的方式声明作为数据源的方法。MethodSourceBean注解的类下作为容器的数据源的一个方法
当直接注解在方法上时:returnType与paramTypes为非必填项;
当直接声明在MethodSourceBean.methods()上时:
若returnType与paramTypes不填,则默认寻找返回值为Collection,且有且仅有一个Collection入参的同名方法;
若指定returnType与paramTypes,则根据指定返回值与入参类型寻找同名方法;
OperateProcessor.getSourceReaders()与待处理对象编写器链OperateProcessor.getTargetWriters(),
前者用于根据配置从指定数据源中获取数据,后者则用于根据配置将数据源写入待处理对象。OperateProcessor,并且声明了所属分组的组件。ConfigurationCache的通用实现OperateProcessor,能够对指定类型的对象实例进行读取或者写入操作的实例Order注解,或实现类重写的Orderly.getOrder()排序
表明实现类之间允许根据优先级排序,Orderly.getOrder()返回值越小,则优先级越高,排序时越靠前。Orderly实现类的比较器,可通过Orderly.comparator()获取ConfigOption注解Assemble注解Disassemble注解Prop注解PropsTemplate注解OperateProcessorComponent接口的实现类,表示该组件允许被注册到哪些分组中PropsTemplate.value()并追加到props中。SourceReader.sourceCanRead(Object, PropertyMapping, Operation)所支持的类型BeanPropertyBeanPropertyMethodInvoker实现EnumDict.Item注解时,将优先使用注解指定的配置EnumDict.Item注解时,将优先使用注解指定的配置OperateProcessor;
组件的注册组必须与当前有处理器所属的组成组有交集;
组件在列表中不存在;
OperationExecutor同步实现。Function接口SourceReader调用前执行TargetWriter调用前执行
List<String> stringList = Arrays.asList("123", null, "424", "233", null);
System.out.println(stringList); // [123, null, 424, 233, null]
Set<Integer> integerSet = CollUtils.toCollection(stringList, LinkedHashSet::new, Integer::parseInt);
System.out.println(integerSet); // [123, 424, 233]
OperationExecutor同步实现。TargetWriter.targetCanWrite(Object, Object, PropertyMapping, AssembleOperation)所支持的类型Copyright © 2022. All rights reserved.