All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.kg.component.generator.config.builder.PathInfoHandler Maven / Gradle / Ivy

There is a newer version: 1.1.26
Show newest version
/*
 * Copyright (c) 2011-2021, baomidou ([email protected]).
 * 

* 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 *

* https://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.kg.component.generator.config.builder; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.kg.component.generator.config.*; import java.io.File; import java.util.HashMap; import java.util.Map; /** * 路径信息处理 * * @author nieqiurong hubin * @since 2020-10-06 * @since 3.5.0 */ class PathInfoHandler { /** * 输出文件Map */ private final Map pathInfo = new HashMap<>(); /** * 输出目录 */ private final String outputDir; /** * 包配置信息 */ private final PackageConfig packageConfig; PathInfoHandler(GlobalConfig globalConfig, TemplateConfig templateConfig, PackageConfig packageConfig) { this.outputDir = globalConfig.getOutputDir(); this.packageConfig = packageConfig; // 设置默认输出路径 this.setDefaultPathInfo(globalConfig, templateConfig); // 覆盖自定义路径 Map pathInfo = packageConfig.getPathInfo(); if (CollectionUtils.isNotEmpty(pathInfo)) { this.pathInfo.putAll(pathInfo); } } /** * 设置默认输出路径 * * @param globalConfig 全局配置 * @param templateConfig 模板配置 */ private void setDefaultPathInfo(GlobalConfig globalConfig, TemplateConfig templateConfig) { putPathInfo(templateConfig.getEntity(globalConfig.isKotlin()), OutputFile.entity, ConstVal.ENTITY); putPathInfo(templateConfig.getDTO(), OutputFile.dto, ConstVal.DTO); putPathInfo(templateConfig.getDtoconvert(), OutputFile.convert, ConstVal.DTOCONVERT); putPathInfo(templateConfig.getExcelConstant(), OutputFile.excelConstant, ConstVal.EXCEL_CONSTANT); putPathInfo(templateConfig.getExcelOut(), OutputFile.excelOut, ConstVal.EXCEL_OUT); putPathInfo(templateConfig.getMapper(), OutputFile.mapper, ConstVal.MAPPER); putPathInfo(templateConfig.getXml(), OutputFile.xml, ConstVal.XML); putPathInfo(templateConfig.getService(), OutputFile.service, ConstVal.SERVICE); putPathInfo(templateConfig.getServiceImpl(), OutputFile.serviceImpl, ConstVal.SERVICE_IMPL); putPathInfo(templateConfig.getController(), OutputFile.controller, ConstVal.CONTROLLER); putPathInfo(OutputFile.parent, ConstVal.PARENT); } public Map getPathInfo() { return this.pathInfo; } private void putPathInfo(String template, OutputFile outputFile, String module) { if (StringUtils.isNotBlank(template)) { putPathInfo(outputFile, module); } } private void putPathInfo(OutputFile outputFile, String module) { pathInfo.putIfAbsent(outputFile, joinPath(outputDir, packageConfig.getPackageInfo(module))); } /** * 连接路径字符串 * * @param parentDir 路径常量字符串 * @param packageName 包名 * @return 连接后的路径 */ private String joinPath(String parentDir, String packageName) { if (StringUtils.isBlank(parentDir)) { parentDir = System.getProperty(ConstVal.JAVA_TMPDIR); } if (!StringUtils.endsWith(parentDir, File.separator)) { parentDir += File.separator; } packageName = packageName.replaceAll("\\.", StringPool.BACK_SLASH + File.separator); return parentDir + packageName; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy