/* * Copyright (c) 2022-2025, Mybatis-Flex (fuhai999@gmail.com). *
* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *
* http://www.apache.org/licenses/LICENSE-2.0 *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.mybatisflex.codegen.config;
import com.mybatisflex.codegen.constant.TemplateConst;
import com.mybatisflex.codegen.dialect.JdbcTypeMapping;
import com.mybatisflex.codegen.entity.Table;
import com.mybatisflex.codegen.template.ITemplate;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.function.UnaryOperator;
/**
* 代码生成全局配置类。
*
* @author Michael Yang
* @author 王帅
* @since 2023-05-15
*/
@SuppressWarnings("unused")
public class GlobalConfig implements Serializable {
private static final long serialVersionUID = 5033600623041298000L;
private final FileType fileType;
// === 必须配置 ===
public GlobalConfig() {
this(FileType.JAVA);
}
private final JavadocConfig javadocConfig;
private final PackageConfig packageConfig;
private final StrategyConfig strategyConfig;
private final TemplateConfig templateConfig;
// === 可选配置 ===
private EntityConfig entityConfig;
private MapperConfig mapperConfig;
private ServiceConfig serviceConfig;
private ServiceImplConfig serviceImplConfig;
private ControllerConfig controllerConfig;
private TableDefConfig tableDefConfig;
private MapperXmlConfig mapperXmlConfig;
// === 其他自定义配置 ===
private Map> superClassFactory) {
getEntityConfig().setSuperClassFactory(superClassFactory);
}
/**
* @see EntityConfig#getSuperClassFactory()
*/
public Function
> getEntitySuperClassFactory() {
return getEntityConfig().getSuperClassFactory();
}
/**
* @see EntityConfig#getImplInterfaces()
*/
public Class>[] getEntityInterfaces() {
return getEntityConfig().getImplInterfaces();
}
/**
* @see EntityConfig#setImplInterfaces(Class[])
*/
public void setEntityInterfaces(Class>[] entityInterfaces) {
getEntityConfig().setImplInterfaces(entityInterfaces);
}
/**
* @see EntityConfig#isWithLombok()
*/
public boolean isEntityWithLombok() {
return getEntityConfig().isWithLombok();
}
/**
* @see EntityConfig#setWithLombok(boolean)
*/
public void setEntityWithLombok(boolean entityWithLombok) {
getEntityConfig().setWithLombok(entityWithLombok);
}
/**
* @see EntityConfig#isWithSwagger()
*/
public boolean isEntityWithSwagger() {
return getEntityConfig().isWithSwagger();
}
/**
* @see EntityConfig#getSwaggerVersion()
*/
public EntityConfig.SwaggerVersion getSwaggerVersion() {
return getEntityConfig().getSwaggerVersion();
}
/**
* @see EntityConfig#setWithSwagger(boolean)
*/
public void setEntityWithSwagger(boolean entityWithSwagger) {
getEntityConfig().setWithSwagger(entityWithSwagger);
}
/**
* @see EntityConfig#isWithActiveRecord()
*/
public boolean isWithActiveRecord() {
return getEntityConfig().isWithActiveRecord();
}
/**
* @see EntityConfig#setWithActiveRecord(boolean)
*/
public void setWithActiveRecord(boolean withActiveRecord) {
getEntityConfig().setWithActiveRecord(withActiveRecord);
}
/**
* @see EntityConfig#getDataSource()
*/
public String getEntityDataSource() {
return getEntityConfig().getDataSource();
}
/**
* @see EntityConfig#setDataSource(String)
*/
public void setEntityDataSource(String dataSource) {
getEntityConfig().setDataSource(dataSource);
}
/**
* @see EntityConfig#getJdkVersion()
*/
public int getEntityJdkVersion() {
return getEntityConfig().getJdkVersion();
}
/**
* @see EntityConfig#setJdkVersion(int)
*/
public void setEntityJdkVersion(int jdkVersion) {
getEntityConfig().setJdkVersion(jdkVersion);
}
/**
* @see EntityConfig#isWithBaseClassEnable()
*/
public boolean isEntityWithBaseClassEnable() {
return getEntityConfig().isWithBaseClassEnable();
}
/**
* @see EntityConfig#setWithBaseClassEnable(boolean)
*/
public void setEntityWithBaseClassEnable(boolean withBaseClassEnable) {
getEntityConfig().setWithBaseClassEnable(withBaseClassEnable);
}
public boolean isMapperGenerateEnable() {
return mapperGenerateEnable;
}
/**
* @see #enableMapper()
* @see #disableMapper()
*/
public void setMapperGenerateEnable(boolean mapperGenerateEnable) {
this.mapperGenerateEnable = mapperGenerateEnable;
}
/**
* @see MapperConfig#isOverwriteEnable()
*/
public boolean isMapperOverwriteEnable() {
return getMapperConfig().isOverwriteEnable();
}
/**
* @see MapperConfig#setOverwriteEnable(boolean)
*/
public void setMapperOverwriteEnable(boolean mapperOverwriteEnable) {
getMapperConfig().setOverwriteEnable(mapperOverwriteEnable);
}
/**
* @see MapperConfig#getClassPrefix()
*/
public String getMapperClassPrefix() {
return getMapperConfig().getClassPrefix();
}
/**
* @see MapperConfig#setClassPrefix(String)
*/
public void setMapperClassPrefix(String mapperClassPrefix) {
getMapperConfig().setClassPrefix(mapperClassPrefix);
}
/**
* @see MapperConfig#getClassSuffix()
*/
public String getMapperClassSuffix() {
return getMapperConfig().getClassSuffix();
}
/**
* @see MapperConfig#setClassSuffix(String)
*/
public void setMapperClassSuffix(String mapperClassSuffix) {
getMapperConfig().setClassSuffix(mapperClassSuffix);
}
/**
* @see MapperConfig#getSuperClass()
*/
public Class> getMapperSuperClass() {
return getMapperConfig().getSuperClass();
}
/**
* @see MapperConfig#setSuperClass(Class)
*/
public void setMapperSuperClass(Class> mapperSuperClass) {
getMapperConfig().setSuperClass(mapperSuperClass);
}
/**
* @see MapperConfig#isMapperAnnotation()
*/
public boolean isMapperAnnotation() {
return getMapperConfig().isMapperAnnotation();
}
/**
* @see MapperConfig#setMapperAnnotation(boolean)
*/
public void setMapperAnnotation(boolean mapperAnnotation) {
getMapperConfig().setMapperAnnotation(mapperAnnotation);
}
public boolean isServiceGenerateEnable() {
return serviceGenerateEnable;
}
/**
* @see #enableService()
* @see #disableService()
*/
public void setServiceGenerateEnable(boolean serviceGenerateEnable) {
this.serviceGenerateEnable = serviceGenerateEnable;
}
/**
* @see ServiceConfig#isOverwriteEnable()
*/
public boolean isServiceOverwriteEnable() {
return getServiceConfig().isOverwriteEnable();
}
/**
* @see ServiceConfig#setOverwriteEnable(boolean)
*/
public void setServiceOverwriteEnable(boolean serviceOverwriteEnable) {
getServiceConfig().setOverwriteEnable(serviceOverwriteEnable);
}
/**
* @see ServiceConfig#getClassPrefix()
*/
public String getServiceClassPrefix() {
return getServiceConfig().getClassPrefix();
}
/**
* @see ServiceConfig#setClassPrefix(String)
*/
public void setServiceClassPrefix(String serviceClassPrefix) {
getServiceConfig().setClassPrefix(serviceClassPrefix);
}
/**
* @see ServiceConfig#getClassSuffix()
*/
public String getServiceClassSuffix() {
return getServiceConfig().getClassSuffix();
}
/**
* @see ServiceConfig#setClassSuffix(String)
*/
public void setServiceClassSuffix(String serviceClassSuffix) {
getServiceConfig().setClassSuffix(serviceClassSuffix);
}
/**
* @see ServiceConfig#getSuperClass()
*/
public Class> getServiceSuperClass() {
return getServiceConfig().getSuperClass();
}
/**
* @see ServiceConfig#setSuperClass(Class)
*/
public void setServiceSuperClass(Class> serviceSuperClass) {
getServiceConfig().setSuperClass(serviceSuperClass);
}
public boolean isServiceImplGenerateEnable() {
return serviceImplGenerateEnable;
}
/**
* @see #enableServiceImpl()
* @see #disableServiceImpl()
*/
public void setServiceImplGenerateEnable(boolean serviceImplGenerateEnable) {
this.serviceImplGenerateEnable = serviceImplGenerateEnable;
}
/**
* @see ServiceImplConfig#isOverwriteEnable()
*/
public boolean isServiceImplOverwriteEnable() {
return getServiceImplConfig().isOverwriteEnable();
}
/**
* @see ServiceImplConfig#setOverwriteEnable(boolean)
*/
public void setServiceImplOverwriteEnable(boolean serviceImplOverwriteEnable) {
getServiceImplConfig().setOverwriteEnable(serviceImplOverwriteEnable);
}
/**
* @see ServiceImplConfig#getClassPrefix()
*/
public String getServiceImplClassPrefix() {
return getServiceImplConfig().getClassPrefix();
}
/**
* @see ServiceImplConfig#setClassPrefix(String)
*/
public void setServiceImplClassPrefix(String serviceImplClassPrefix) {
getServiceImplConfig().setClassPrefix(serviceImplClassPrefix);
}
/**
* @see ServiceImplConfig#getClassSuffix()
*/
public String getServiceImplClassSuffix() {
return getServiceImplConfig().getClassSuffix();
}
/**
* @see ServiceImplConfig#setClassSuffix(String)
*/
public void setServiceImplClassSuffix(String serviceImplClassSuffix) {
getServiceImplConfig().setClassSuffix(serviceImplClassSuffix);
}
/**
* @see ServiceImplConfig#getSuperClass()
*/
public Class> getServiceImplSuperClass() {
return getServiceImplConfig().getSuperClass();
}
/**
* @see ServiceImplConfig#setSuperClass(Class)
*/
public void setServiceImplSuperClass(Class> serviceImplSuperClass) {
getServiceImplConfig().setSuperClass(serviceImplSuperClass);
}
/**
* @see ServiceImplConfig#isCacheExample()
*/
public boolean isServiceImplCacheExample() {
return getServiceImplConfig().isCacheExample();
}
/**
* @see ServiceImplConfig#setCacheExample(boolean)
*/
public void setServiceImplCacheExample(boolean cacheExample) {
getServiceImplConfig().setCacheExample(cacheExample);
}
/**
* @see ControllerConfig#isOverwriteEnable()
*/
public boolean isControllerOverwriteEnable() {
return getControllerConfig().isOverwriteEnable();
}
public boolean isControllerGenerateEnable() {
return controllerGenerateEnable;
}
/**
* @see ControllerConfig#setOverwriteEnable(boolean)
*/
public void setControllerOverwriteEnable(boolean controllerOverwriteEnable) {
getControllerConfig().setOverwriteEnable(controllerOverwriteEnable);
}
/**
* @see #enableController()
* @see #disableController()
*/
public void setControllerGenerateEnable(boolean controllerGenerateEnable) {
this.controllerGenerateEnable = controllerGenerateEnable;
}
/**
* @see ControllerConfig#getRequestMappingPrefix()
*/
public String getControllerRequestMappingPrefix() {
return getControllerConfig().getRequestMappingPrefix();
}
/**
* @see ControllerConfig#setRequestMappingPrefix(String)
*/
public void setControllerRequestMappingPrefix(String controllerRequestMappingPrefix) {
getControllerConfig().setRequestMappingPrefix(controllerRequestMappingPrefix);
}
/**
* @see ControllerConfig#getClassPrefix()
*/
public String getControllerClassPrefix() {
return getControllerConfig().getClassPrefix();
}
/**
* @see ControllerConfig#setClassPrefix(String)
*/
public void setControllerClassPrefix(String controllerClassPrefix) {
getControllerConfig().setClassPrefix(controllerClassPrefix);
}
/**
* @see ControllerConfig#getClassSuffix()
*/
public String getControllerClassSuffix() {
return getControllerConfig().getClassSuffix();
}
/**
* @see ControllerConfig#setClassSuffix(String)
*/
public void setControllerClassSuffix(String controllerClassSuffix) {
getControllerConfig().setClassSuffix(controllerClassSuffix);
}
/**
* @see ControllerConfig#getSuperClass()
*/
public Class> getControllerSuperClass() {
return getControllerConfig().getSuperClass();
}
/**
* @see ControllerConfig#setSuperClass(Class)
*/
public void setControllerSuperClass(Class> controllerSuperClass) {
getControllerConfig().setSuperClass(controllerSuperClass);
}
/**
* @see ControllerConfig#isRestStyle()
*/
public boolean isControllerRestStyle() {
return getControllerConfig().isRestStyle();
}
/**
* @see ControllerConfig#setRestStyle(boolean)
*/
public void setControllerRestStyle(boolean restStyle) {
getControllerConfig().setRestStyle(restStyle);
}
public boolean isTableDefGenerateEnable() {
return tableDefGenerateEnable;
}
/**
* @see #enableTableDef()
* @see #disableTableDef()
*/
public void setTableDefGenerateEnable(boolean tableDefGenerateEnable) {
this.tableDefGenerateEnable = tableDefGenerateEnable;
}
/**
* @see TableDefConfig#isOverwriteEnable()
*/
public boolean isTableDefOverwriteEnable() {
return getTableDefConfig().isOverwriteEnable();
}
/**
* @see TableDefConfig#setOverwriteEnable(boolean)
*/
public void setTableDefOverwriteEnable(boolean tableDefOverwriteEnable) {
getTableDefConfig().setOverwriteEnable(tableDefOverwriteEnable);
}
/**
* @see TableDefConfig#getClassPrefix()
*/
public String getTableDefClassPrefix() {
return getTableDefConfig().getClassPrefix();
}
/**
* @see TableDefConfig#setClassPrefix(String)
*/
public void setTableDefClassPrefix(String tableDefClassPrefix) {
getTableDefConfig().setClassPrefix(tableDefClassPrefix);
}
/**
* @see TableDefConfig#getClassSuffix()
*/
public String getTableDefClassSuffix() {
return getTableDefConfig().getClassSuffix();
}
/**
* @see TableDefConfig#setClassSuffix(String)
*/
public void setTableDefClassSuffix(String tableDefClassSuffix) {
getTableDefConfig().setClassSuffix(tableDefClassSuffix);
}
/**
* @see TableDefConfig#getPropertiesNameStyle()
*/
public TableDefConfig.NameStyle getTableDefPropertiesNameStyle() {
return getTableDefConfig().getPropertiesNameStyle();
}
/**
* @see TableDefConfig#setPropertiesNameStyle(TableDefConfig.NameStyle)
*/
public void setTableDefPropertiesNameStyle(TableDefConfig.NameStyle propertiesNameStyle) {
getTableDefConfig().setPropertiesNameStyle(propertiesNameStyle);
}
/**
* @see TableDefConfig#getInstanceSuffix()
*/
public String getTableDefInstanceSuffix() {
return getTableDefConfig().getInstanceSuffix();
}
/**
* @see TableDefConfig#setInstanceSuffix(String)
*/
public void setTableDefInstanceSuffix(String instanceSuffix) {
getTableDefConfig().setInstanceSuffix(instanceSuffix);
}
public boolean isMapperXmlGenerateEnable() {
return mapperXmlGenerateEnable;
}
/**
* @see #enableMapperXml()
* @see #disableMapperXml()
*/
public void setMapperXmlGenerateEnable(boolean mapperXmlGenerateEnable) {
this.mapperXmlGenerateEnable = mapperXmlGenerateEnable;
}
/**
* @see MapperXmlConfig#isOverwriteEnable()
*/
public boolean isMapperXmlOverwriteEnable() {
return getMapperXmlConfig().isOverwriteEnable();
}
/**
* @see MapperXmlConfig#setOverwriteEnable(boolean)
*/
public void setMapperXmlOverwriteEnable(boolean mapperXmlOverwriteEnable) {
getMapperXmlConfig().setOverwriteEnable(mapperXmlOverwriteEnable);
}
/**
* @see MapperXmlConfig#getFilePrefix()
*/
public String getMapperXmlFilePrefix() {
return getMapperXmlConfig().getFilePrefix();
}
/**
* @see MapperXmlConfig#setFilePrefix(String)
*/
public void setMapperXmlFilePrefix(String mapperXmlFilePrefix) {
getMapperXmlConfig().setFilePrefix(mapperXmlFilePrefix);
}
/**
* @see MapperXmlConfig#getFileSuffix()
*/
public String getMapperXmlFileSuffix() {
return getMapperXmlConfig().getFileSuffix();
}
/**
* @see MapperXmlConfig#setFileSuffix(String)
*/
public void setMapperXmlFileSuffix(String mapperXmlFileSuffix) {
getMapperXmlConfig().setFileSuffix(mapperXmlFileSuffix);
}
public boolean isPackageInfoGenerateEnable() {
return packageInfoGenerateEnable;
}
/**
* @see #enablePackageInfo()
* @see #disablePackageInfo()
*/
public void setPackageInfoGenerateEnable(boolean packageInfoGenerateEnable) {
this.packageInfoGenerateEnable = packageInfoGenerateEnable;
}
}