mirror of
https://gitee.com/easii/mapstruct-plus.git
synced 2025-12-07 01:28:31 +08:00
- 增加反向转换配置参数
- 解决树状结构转换问题
This commit is contained in:
parent
8d25e9fed5
commit
7cdbcc1e82
@ -18,7 +18,7 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<mapstruct.version>1.5.1.Final</mapstruct.version>
|
<mapstruct.version>1.5.1.Final</mapstruct.version>
|
||||||
<mapstruct-plus.version>1.1.3</mapstruct-plus.version>
|
<mapstruct-plus.version>1.1.4</mapstruct-plus.version>
|
||||||
<lombok.version>1.18.22</lombok.version>
|
<lombok.version>1.18.22</lombok.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@ -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<SysMenu> children;
|
||||||
|
|
||||||
|
}
|
||||||
@ -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<SysMenuVo> children;
|
||||||
|
|
||||||
|
}
|
||||||
@ -225,6 +225,9 @@ public class AutoMapperProcessor extends AbstractProcessor {
|
|||||||
|
|
||||||
mapperList.forEach(autoMapperMetadata -> {
|
mapperList.forEach(autoMapperMetadata -> {
|
||||||
final AutoMapperMetadata reverseMapperMetadata = reverseMapper(autoMapperMetadata);
|
final AutoMapperMetadata reverseMapperMetadata = reverseMapper(autoMapperMetadata);
|
||||||
|
if (!reverseMapperMetadata.isReverseConvertGenerate()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!mapperSet.add(reverseMapperMetadata.mapperName())) {
|
if (!mapperSet.add(reverseMapperMetadata.mapperName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -337,6 +340,7 @@ public class AutoMapperProcessor extends AbstractProcessor {
|
|||||||
metadata.setSuperGenerics(new ClassName[] {source, target});
|
metadata.setSuperGenerics(new ClassName[] {source, target});
|
||||||
metadata.setMapstructConfigClass(
|
metadata.setMapstructConfigClass(
|
||||||
ClassName.get(AutoMapperProperties.getConfigPackage(), AutoMapperProperties.getConfigClassName()));
|
ClassName.get(AutoMapperProperties.getConfigPackage(), AutoMapperProperties.getConfigClassName()));
|
||||||
|
metadata.setReverseConvertGenerate(autoMapper.reverseConvertGenerate());
|
||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,6 +19,8 @@ public class AutoMapperMetadata extends AbstractMapperMetadata {
|
|||||||
|
|
||||||
private ClassName mapstructConfigClass;
|
private ClassName mapstructConfigClass;
|
||||||
|
|
||||||
|
private boolean reverseConvertGenerate;
|
||||||
|
|
||||||
public String mapperName() {
|
public String mapperName() {
|
||||||
return sourceClassName.simpleName() + "To" + targetClassName.simpleName() + "Mapper";
|
return sourceClassName.simpleName() + "To" + targetClassName.simpleName() + "Mapper";
|
||||||
}
|
}
|
||||||
@ -73,4 +75,12 @@ public class AutoMapperMetadata extends AbstractMapperMetadata {
|
|||||||
public void setMapstructConfigClass(final ClassName mapstructConfigClass) {
|
public void setMapstructConfigClass(final ClassName mapstructConfigClass) {
|
||||||
this.mapstructConfigClass = mapstructConfigClass;
|
this.mapstructConfigClass = mapstructConfigClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isReverseConvertGenerate() {
|
||||||
|
return reverseConvertGenerate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReverseConvertGenerate(final boolean reverseConvertGenerate) {
|
||||||
|
this.reverseConvertGenerate = reverseConvertGenerate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package io.github.linpeilie;
|
package io.github.linpeilie;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import org.mapstruct.MappingTarget;
|
import org.mapstruct.MappingTarget;
|
||||||
|
|
||||||
public interface BaseMapper<S, T> {
|
public interface BaseMapper<S, T> {
|
||||||
@ -8,4 +10,8 @@ public interface BaseMapper<S, T> {
|
|||||||
|
|
||||||
T convert(S source, @MappingTarget T target);
|
T convert(S source, @MappingTarget T target);
|
||||||
|
|
||||||
|
default List<T> convert(List<S> sourceList) {
|
||||||
|
return sourceList.stream().map(this::convert).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,4 +13,12 @@ public @interface AutoMapper {
|
|||||||
|
|
||||||
Class<?>[] uses() default {};
|
Class<?>[] uses() default {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否生成反向转换的接口
|
||||||
|
*
|
||||||
|
* @return true : 生成反向转换的接口
|
||||||
|
* false : 不生成反向转换的接口
|
||||||
|
*/
|
||||||
|
boolean reverseConvertGenerate() default true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@ -17,7 +17,7 @@
|
|||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<mapstruct-plus.version>1.1.3</mapstruct-plus.version>
|
<mapstruct-plus.version>1.1.4</mapstruct-plus.version>
|
||||||
<maven.compiler.source>8</maven.compiler.source>
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
<maven.compiler.target>8</maven.compiler.target>
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user