fieldReverseMappingList) {
+ this.fieldReverseMappingList = fieldReverseMappingList;
+ }
+
+ public boolean isConvertGenerate() {
+ return convertGenerate;
+ }
+
+ public void setConvertGenerate(final boolean convertGenerate) {
+ this.convertGenerate = convertGenerate;
+ }
}
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 7bf781e..550afde 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
@@ -5,6 +5,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+/**
+ * @author linpl
+ */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.CLASS)
public @interface AutoMapper {
@@ -13,11 +16,17 @@ public @interface AutoMapper {
Class>[] uses() default {};
+ /**
+ * 是否生成转换的接口,当只想生成反向接口时,可以指定当前属性为 {@code false}
+ *
+ * @return {@code true} 生成类型转换的接口 {@code false} 不生成类型转换的接口
+ */
+ boolean convertGenerate() default true;
+
/**
* 是否生成反向转换的接口
*
- * @return true : 生成反向转换的接口
- * false : 不生成反向转换的接口
+ * @return true : 生成反向转换的接口 false : 不生成反向转换的接口
*/
boolean reverseConvertGenerate() default true;
diff --git a/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/AutoMapping.java b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/AutoMapping.java
index 936c2cd..f864356 100644
--- a/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/AutoMapping.java
+++ b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/AutoMapping.java
@@ -16,10 +16,11 @@ public @interface AutoMapping {
* 来源,默认取当前字段名称
* - 可以是当前类中的属性名
* - 也可以是属性名.属性名,例如:address.city.name
+ * @return 当前类中的属性
*/
String source() default "";
- String target();
+ String target() default "";
String dateFormat() default "";
@@ -31,6 +32,7 @@ public @interface AutoMapping {
/**
* 默认值
+ * @return 当源属性为null时,设置的默认值
*/
String defaultValue() default "";
diff --git a/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/MapperConfig.java b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/MapperConfig.java
index 2f28a8b..a1218ef 100644
--- a/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/MapperConfig.java
+++ b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/MapperConfig.java
@@ -18,6 +18,7 @@ public @interface MapperConfig {
/**
* 所生成的 Mapper 接口的包
+ * @return Mapper 接口自动生成后的包名,如果为空,则默认生成在要转换的类同包下
*/
String mapperPackage() default "";
diff --git a/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/ReverseAutoMapping.java b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/ReverseAutoMapping.java
new file mode 100644
index 0000000..ad0564f
--- /dev/null
+++ b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/ReverseAutoMapping.java
@@ -0,0 +1,66 @@
+package io.github.linpeilie.annotations;
+
+import io.github.linpeilie.DefaultMapping;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 由目标类生成当前类的配置
+ *
+ * {@link AutoMapper} 的生成规则是由配置注解的当前类,生成与目标类之间的转换接口,所以其内部字段中的 {@link AutoMapping} 都是基于该条件来配置的。
+ * 虽然默认情况下会生成目标类到当前类的转换,但如果自定义配置的话,仍需要到目标类上面进行配置。
+ *
+ *
+ * 但现实情况中,可能会出现目标类,不能或者不建议增加配置注解,所以,这里提供一种在一种类上面自定义配置两个类转换的方式。 如果需要配置由目标类转换为配置注解的当前类具体转换逻辑的话,可以使用当前注解
+ *
+ *
+ * 需要注意的是,如果在当前类中配置了该注解信息,则在目标类中不能够再定义与该类转换相关的注解,例如{@code AutoMapper}、{@code AutoMapping}
+ *
+ *
+ * @author linpl
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.CLASS)
+public @interface ReverseAutoMapping {
+
+ Class> targetClass() default DefaultMapping.class;
+
+ /**
+ * 来源,默认取当前字段名称
+ * - 可以是当前类中的属性名
+ * - 也可以是属性名.属性名,例如:address.city.name
+ * 这里的来源,指的是目标类中的字段信息
+ *
+ * @return 目标类中的属性
+ */
+ String source() default "";
+
+ /**
+ * 目标属性,默认取当前字段名称
+ *
+ * - 可以是当前类中的属性名
+ * - 也可以是属性名.属性名,例如:address.city.name
+ *
+ *
+ * @return 当前类中的属性
+ */
+ String target() default "";
+
+ String dateFormat() default "";
+
+ String numberFormat() default "";
+
+ String expression() default "";
+
+ boolean ignore() default false;
+
+ /**
+ * 默认值
+ *
+ * @return 当来源属性为null时,所设置的默认值
+ */
+ String defaultValue() default "";
+
+}
diff --git a/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/ReverseAutoMappings.java b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/ReverseAutoMappings.java
new file mode 100644
index 0000000..47ea79c
--- /dev/null
+++ b/mapstruct-plus/src/main/java/io/github/linpeilie/annotations/ReverseAutoMappings.java
@@ -0,0 +1,14 @@
+package io.github.linpeilie.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.CLASS)
+public @interface ReverseAutoMappings {
+
+ ReverseAutoMapping[] value();
+
+}
diff --git a/mapstruct-plus/src/main/java/io/github/linpeilie/map/MapObjectConvert.java b/mapstruct-plus/src/main/java/io/github/linpeilie/map/MapObjectConvert.java
index 1e1a653..6ad4a0e 100644
--- a/mapstruct-plus/src/main/java/io/github/linpeilie/map/MapObjectConvert.java
+++ b/mapstruct-plus/src/main/java/io/github/linpeilie/map/MapObjectConvert.java
@@ -38,10 +38,6 @@ public class MapObjectConvert {
return Convert.toDouble(obj);
}
- public static Number objToNumber(Object obj) {
- return Convert.toNumber(obj);
- }
-
public static Boolean objToBoolean(Object obj) {
return Convert.toBool(obj);
}
diff --git a/pom.xml b/pom.xml
index 6fef724..af11f26 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
pom
${mapstruct-plus.version}
Mapstruct Plus
- mapstruct增加工具包
+ mapstruct增强工具包
mapstruct-plus
mapstruct-plus-spring-boot-starter
@@ -17,11 +17,11 @@
- 1.1.5
+ 1.1.6
8
8
UTF-8
- 1.5.1.Final
+ 1.5.3.Final
5.8.9
https://github.com/linpeilie/mapstruct-plus.git