AutoMapping、ReverseAutoMapping支持qualifiedByName、conditionQualifiedByName和dependsOn属性

This commit is contained in:
gzoldou 2024-02-12 23:15:55 +08:00
parent f78efc39e1
commit 3023bbc5ed
5 changed files with 61 additions and 0 deletions

View File

@ -734,6 +734,9 @@ public class AutoMapperProcessor extends AbstractProcessor {
metadata.setConditionExpression(reverseAutoMapping.conditionExpression());
metadata.setDateFormat(reverseAutoMapping.dateFormat());
metadata.setNumberFormat(reverseAutoMapping.numberFormat());
metadata.setQualifiedByName(reverseAutoMapping.qualifiedByName());
metadata.setConditionQualifiedByName(reverseAutoMapping.conditionQualifiedByName());
metadata.setDependsOn(reverseAutoMapping.dependsOn());
return metadata;
}
@ -808,6 +811,9 @@ public class AutoMapperProcessor extends AbstractProcessor {
metadata.setConditionExpression(autoMapping.conditionExpression());
metadata.setDateFormat(autoMapping.dateFormat());
metadata.setNumberFormat(autoMapping.numberFormat());
metadata.setQualifiedByName(autoMapping.qualifiedByName());
metadata.setConditionQualifiedByName(autoMapping.conditionQualifiedByName());
metadata.setDependsOn(autoMapping.dependsOn());
return metadata;
}

View File

@ -1,6 +1,7 @@
package io.github.linpeilie.processor.generator;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import com.squareup.javapoet.AnnotationSpec;
import com.squareup.javapoet.ClassName;
@ -143,6 +144,18 @@ public class AutoMapperGenerator {
if (StringUtils.isNotEmpty(autoMappingMetadata.getConditionExpression())) {
builder.addMember("conditionExpression", CodeBlock.builder().add("$S", autoMappingMetadata.getConditionExpression()).build());
}
if (ArrayUtil.isNotEmpty(autoMappingMetadata.getQualifiedByName())) {
builder.addMember("qualifiedByName", CodeBlock.builder().add("$L",
"{" + ArrayUtil.join(autoMappingMetadata.getQualifiedByName(), ",", "\"", "\"") + "}").build());
}
if (ArrayUtil.isNotEmpty(autoMappingMetadata.getConditionQualifiedByName())) {
builder.addMember("conditionQualifiedByName", CodeBlock.builder().add("$L",
"{" + ArrayUtil.join(autoMappingMetadata.getConditionQualifiedByName(), ",", "\"", "\"") + "}").build());
}
if (ArrayUtil.isNotEmpty(autoMappingMetadata.getDependsOn())) {
builder.addMember("dependsOn", CodeBlock.builder().add("$L",
"{" + ArrayUtil.join(autoMappingMetadata.getDependsOn(), ",", "\"", "\"") + "}").build());
}
return builder.build();
}).collect(Collectors.toList());
}

View File

@ -24,6 +24,12 @@ public class AutoMappingMetadata {
private String defaultValue = "";
String[] qualifiedByName = {};
String[] conditionQualifiedByName = {};
String[] dependsOn = {};
public ClassName getTargetClass() {
return targetClass;
}
@ -103,4 +109,28 @@ public class AutoMappingMetadata {
public void setConditionExpression(final String conditionExpression) {
this.conditionExpression = conditionExpression;
}
public String[] getQualifiedByName() {
return qualifiedByName;
}
public void setQualifiedByName(String[] qualifiedByName) {
this.qualifiedByName = qualifiedByName;
}
public String[] getConditionQualifiedByName() {
return conditionQualifiedByName;
}
public void setConditionQualifiedByName(String[] conditionQualifiedByName) {
this.conditionQualifiedByName = conditionQualifiedByName;
}
public String[] getDependsOn() {
return dependsOn;
}
public void setDependsOn(String[] dependsOn) {
this.dependsOn = dependsOn;
}
}

View File

@ -40,4 +40,10 @@ public @interface AutoMapping {
*/
String defaultValue() default "";
String[] qualifiedByName() default {};
String[] conditionQualifiedByName() default {};
String[] dependsOn() default {};
}

View File

@ -67,4 +67,10 @@ public @interface ReverseAutoMapping {
*/
String defaultValue() default "";
String[] qualifiedByName() default {};
String[] conditionQualifiedByName() default {};
String[] dependsOn() default {};
}