issue#I8QPRO

configuration support for the AutoMapperConfig and AutoMapMapperConfig package and class name
This commit is contained in:
linpeilie 2024-01-07 13:35:53 +08:00
parent bdc55fc0fb
commit f5e48f9b1f
5 changed files with 67 additions and 4 deletions

View File

@ -4,6 +4,9 @@ import io.github.linpeilie.annotations.MapperConfig;
@MapperConfig(adapterClassName = "DemoConvertMapperAdapter",
adapterPackage = "io.github.linpeilie.adapter",
mapAdapterClassName = "DemoMapConvertMapperAdapter")
mapAdapterClassName = "DemoMapConvertMapperAdapter",
autoConfigPackage = "cn.easii",
autoMapperConfigClassName = "EasiiAutoMapperConfig",
autoMapMapperConfigClassName = "EasiiAutoMapMapperConfig")
public class MapStructPlusConfiguration {
}

View File

@ -399,6 +399,15 @@ public class AutoMapperProcessor extends AbstractProcessor {
if (StrUtil.isNotEmpty(mapperConfig.mapAdapterClassName())) {
AutoMapperProperties.setMapAdapterClassName(mapperConfig.mapAdapterClassName());
}
if (StrUtil.isNotEmpty(mapperConfig.autoConfigPackage())) {
AutoMapperProperties.setAutoConfigPackage(mapperConfig.autoConfigPackage());
}
if (StrUtil.isNotEmpty(mapperConfig.autoMapperConfigClassName())) {
AutoMapperProperties.setAutoMapperConfigClassName(mapperConfig.autoMapperConfigClassName());
}
if (StrUtil.isNotEmpty(mapperConfig.autoMapMapperConfigClassName())) {
AutoMapperProperties.setAutoMapMapperConfigClassName(mapperConfig.autoMapMapperConfigClassName());
}
}
private void refreshProperties(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {

View File

@ -31,6 +31,12 @@ public class AutoMapperProperties {
private static String mapAdapterClassName = DEFAULT_MAP_ADAPTER_CLASS_NAME;
private static String autoConfigPackage = DEFAULT_BASE_PACKAGE;
private static String autoMapperConfigClassName = AUTO_MAPPER_CONFIG_CLASS_NAME;
private static String autoMapMapperConfigClassName = AUTO_MAP_MAPPER_CONFIG_CLASS_NAME;
public static String getMapperPackage() {
return mapperPackage;
}
@ -60,15 +66,27 @@ public class AutoMapperProperties {
}
public static String getConfigPackage() {
return DEFAULT_BASE_PACKAGE;
return autoConfigPackage;
}
public static void setAutoConfigPackage(String autoConfigPackage) {
AutoMapperProperties.autoConfigPackage = autoConfigPackage;
}
public static String getConfigClassName() {
return AUTO_MAPPER_CONFIG_CLASS_NAME;
return autoMapperConfigClassName;
}
public static void setAutoMapperConfigClassName(String autoMapperConfigClassName) {
AutoMapperProperties.autoMapperConfigClassName = autoMapperConfigClassName;
}
public static String getMapConfigClassName() {
return AUTO_MAP_MAPPER_CONFIG_CLASS_NAME;
return autoMapMapperConfigClassName;
}
public static void setAutoMapMapperConfigClassName(String autoMapMapperConfigClassName) {
AutoMapperProperties.autoMapMapperConfigClassName = autoMapMapperConfigClassName;
}
public static String getComponentModel() {

View File

@ -33,6 +33,12 @@ public class ProcessorOptions {
public static final String MAP_ADAPTER_CLASS_NAME = "mapstruct.plus.mapAdapterClassName";
public static final String AUTO_CONFIG_PACKAGE = "mapstruct.plus.autoConfigPackage";
public static final String AUTO_MAPPER_CONFIG_CLASS_NAME = "mapstruct.plus.autoMapperConfigClassName";
public static final String AUTO_MAP_MAPPER_CONFIG_CLASS_NAME = "mapstruct.plus.autoMapMapperConfigClassName";
public static Map<String, Consumer<String>> optionConsumers() {
final Map<String, Consumer<String>> consumerMap = new HashMap<>();
@ -53,6 +59,9 @@ public class ProcessorOptions {
consumerMap.put(ADAPTER_PACKAGE, AutoMapperProperties::setAdapterPackage);
consumerMap.put(ADAPTER_CLASS_NAME, AutoMapperProperties::setAdapterClassName);
consumerMap.put(MAP_ADAPTER_CLASS_NAME, AutoMapperProperties::setMapAdapterClassName);
consumerMap.put(AUTO_CONFIG_PACKAGE, AutoMapperProperties::setAutoConfigPackage);
consumerMap.put(AUTO_MAPPER_CONFIG_CLASS_NAME, AutoMapperProperties::setAutoMapperConfigClassName);
consumerMap.put(AUTO_MAP_MAPPER_CONFIG_CLASS_NAME, AutoMapperProperties::setAutoMapMapperConfigClassName);
return consumerMap;
}

View File

@ -74,4 +74,28 @@ public @interface MapperConfig {
*/
String mapAdapterClassName() default "";
/**
* MapStructPlus 所生成的配置类(AutoMapperConfig/AutoMapMapperConfig)包路径
* <br>
* 默认包路径为 io.github.linpeilie
* @return AutoMapperConfig / AutoMapMapperConfig 包路径
*/
String autoConfigPackage() default "";
/**
* MapStructPlus 所生成的配置类转换的配置类名
* <br>
* 默认类名为 AutoMapperConfig
* @return AutoMapperConfig 类名
*/
String autoMapperConfigClassName() default "";
/**
* MapStructPlus 所生成的配置 Map 与对象转换的配置类名
* <br>
* 默认类名为 AutoMapMapperConfig
* @return AutoMapMapperConfig 类名
*/
String autoMapMapperConfigClassName() default "";
}