diff --git a/example/pom.xml b/example/pom.xml
index 1bfa946..0ea7b01 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -18,7 +18,7 @@
UTF-8
1.5.1.Final
- 1.1.3
+ 1.1.4
1.18.22
diff --git a/example/spring-boot-with-lombok/src/main/java/io/github/linpeilie/model/SysMenu.java b/example/spring-boot-with-lombok/src/main/java/io/github/linpeilie/model/SysMenu.java
new file mode 100644
index 0000000..308199a
--- /dev/null
+++ b/example/spring-boot-with-lombok/src/main/java/io/github/linpeilie/model/SysMenu.java
@@ -0,0 +1,15 @@
+package io.github.linpeilie.model;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import java.util.List;
+import lombok.Data;
+
+@AutoMapper(target = SysMenuVo.class, reverseConvertGenerate = false)
+@Data
+public class SysMenu {
+
+ private String path;
+
+ private List children;
+
+}
diff --git a/example/spring-boot-with-lombok/src/main/java/io/github/linpeilie/model/SysMenuVo.java b/example/spring-boot-with-lombok/src/main/java/io/github/linpeilie/model/SysMenuVo.java
new file mode 100644
index 0000000..b03919f
--- /dev/null
+++ b/example/spring-boot-with-lombok/src/main/java/io/github/linpeilie/model/SysMenuVo.java
@@ -0,0 +1,13 @@
+package io.github.linpeilie.model;
+
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class SysMenuVo {
+
+ private String path;
+
+ private List children;
+
+}
diff --git a/mapstruct-plus-processor/src/main/java/io/github/linpeilie/processor/AutoMapperProcessor.java b/mapstruct-plus-processor/src/main/java/io/github/linpeilie/processor/AutoMapperProcessor.java
index 83c2a93..88fd1f9 100644
--- a/mapstruct-plus-processor/src/main/java/io/github/linpeilie/processor/AutoMapperProcessor.java
+++ b/mapstruct-plus-processor/src/main/java/io/github/linpeilie/processor/AutoMapperProcessor.java
@@ -225,6 +225,9 @@ public class AutoMapperProcessor extends AbstractProcessor {
mapperList.forEach(autoMapperMetadata -> {
final AutoMapperMetadata reverseMapperMetadata = reverseMapper(autoMapperMetadata);
+ if (!reverseMapperMetadata.isReverseConvertGenerate()) {
+ return;
+ }
if (!mapperSet.add(reverseMapperMetadata.mapperName())) {
return;
}
@@ -337,6 +340,7 @@ public class AutoMapperProcessor extends AbstractProcessor {
metadata.setSuperGenerics(new ClassName[] {source, target});
metadata.setMapstructConfigClass(
ClassName.get(AutoMapperProperties.getConfigPackage(), AutoMapperProperties.getConfigClassName()));
+ metadata.setReverseConvertGenerate(autoMapper.reverseConvertGenerate());
return metadata;
}
diff --git a/mapstruct-plus-processor/src/main/java/io/github/linpeilie/processor/metadata/AutoMapperMetadata.java b/mapstruct-plus-processor/src/main/java/io/github/linpeilie/processor/metadata/AutoMapperMetadata.java
index 56fb324..92ebcca 100644
--- a/mapstruct-plus-processor/src/main/java/io/github/linpeilie/processor/metadata/AutoMapperMetadata.java
+++ b/mapstruct-plus-processor/src/main/java/io/github/linpeilie/processor/metadata/AutoMapperMetadata.java
@@ -19,6 +19,8 @@ public class AutoMapperMetadata extends AbstractMapperMetadata {
private ClassName mapstructConfigClass;
+ private boolean reverseConvertGenerate;
+
public String mapperName() {
return sourceClassName.simpleName() + "To" + targetClassName.simpleName() + "Mapper";
}
@@ -73,4 +75,12 @@ public class AutoMapperMetadata extends AbstractMapperMetadata {
public void setMapstructConfigClass(final ClassName mapstructConfigClass) {
this.mapstructConfigClass = mapstructConfigClass;
}
+
+ public boolean isReverseConvertGenerate() {
+ return reverseConvertGenerate;
+ }
+
+ public void setReverseConvertGenerate(final boolean reverseConvertGenerate) {
+ this.reverseConvertGenerate = reverseConvertGenerate;
+ }
}
diff --git a/mapstruct-plus/src/main/java/io/github/linpeilie/BaseMapper.java b/mapstruct-plus/src/main/java/io/github/linpeilie/BaseMapper.java
index c146141..e7991bc 100644
--- a/mapstruct-plus/src/main/java/io/github/linpeilie/BaseMapper.java
+++ b/mapstruct-plus/src/main/java/io/github/linpeilie/BaseMapper.java
@@ -1,5 +1,7 @@
package io.github.linpeilie;
+import java.util.List;
+import java.util.stream.Collectors;
import org.mapstruct.MappingTarget;
public interface BaseMapper {
@@ -8,4 +10,8 @@ public interface BaseMapper {
T convert(S source, @MappingTarget T target);
+ default List convert(List sourceList) {
+ return sourceList.stream().map(this::convert).collect(Collectors.toList());
+ }
+
}
diff --git a/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/AutoMapper.java b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/AutoMapper.java
index 9e553e3..7bf781e 100644
--- a/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/AutoMapper.java
+++ b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/AutoMapper.java
@@ -13,4 +13,12 @@ public @interface AutoMapper {
Class>[] uses() default {};
+ /**
+ * 是否生成反向转换的接口
+ *
+ * @return true : 生成反向转换的接口
+ * false : 不生成反向转换的接口
+ */
+ boolean reverseConvertGenerate() default true;
+
}
diff --git a/pom.xml b/pom.xml
index def1a76..d03bc1d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
- 1.1.3
+ 1.1.4
8
8
UTF-8