BeanPropertyFactory抽象类,提供基本逻辑封装与缓存功能OperationExecutor初步实现,提供基本的装配与装卸操作的收集处理。OperateHandlerChain.handlers()与OperateHandlerChain.interceptors()皆按Orderly.comparator()排序的处理器链,提供一些方法的基本实现Collections.emptyList()
Object: 适配为Collections.singletonList(Object)
Map: 适配为Map.entrySet();
Collection: 强转为Collection集合
Array: 使用Arrays.asList(Object[])转为集合;
BeanPropertyBeanPropertyAssemble.namespace()获取数据源并填充到当前对象。BeanIntrospectContainer容器装配EnumDictContainer容器装配KeyIntrospectContainer容器装配KeyValueContainer容器装配MethodSourceContainer容器装配BeanOperationConfiguration构建操作配置实例OperateConfigurationParser包装类,基于ConfigurationCache为包装的解析器提供解析配置缓存功能Operations注解,生成配置类OperationConfiguration.getAssembleOperations()
与OperationConfiguration.getDisassembleOperations()Orderly.getOrder()的返回值比较两个实例的大小ConfigOption解析器,用于快速搭建带缓存功能的注解处理器AssembleOperation配置完成对一批对象的装配处理的“车间”。DynamicDisassembleOperation一致,但是代表的类型不确定的装卸字段,
用于处理类似字段类型是泛型、接口或父类的情况。Container实现MapAccessor以便根据“xx.xx”格式的表达式访问Map集合数据Assemble与Disassemble注解,生成配置类MethodAccessOrder注解,则其对应的方法返回值应当与注解值保持一致,
若不一致时,应当以Order为准。BeanProperty实例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,则根据指定返回值与入参类型寻找同名方法;
Operator中从不同类型的数据结构中读取或写入所需数据Order注解,或实现类重写的Orderly.getOrder()排序
表明实现类之间允许根据优先级排序,Orderly.getOrder()返回值越小,则优先级越高,排序时越靠前。ConfigOption注解Assemble注解Disassemble注解Prop注解PropsTemplate注解PropsTemplate.value()并追加到props中。OperateHandler.sourceCanRead(Object, PropertyMapping, Operation)所支持的类型BeanPropertyBeanPropertyEnumDict.Item注解时,将优先使用注解指定的配置EnumDict.Item注解时,将优先使用注解指定的配置OperationExecutor同步实现。Function接口
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同步实现。OperateHandler.targetCanWrite(Object, Object, PropertyMapping, AssembleOperation)所支持的类型Copyright © 2022. All rights reserved.