package cd.casic.plugin.utils;

import org.pf4j.util.StringUtils;

/**
 * @description: TODO
 * @author: mianbin
 * @date: 2025/5/21 19:45
 * @version: 1.0
 */
public class ConfigFileUtils {
    /**
     * 拼接插件独立配置文件的文件名和环境后缀
     *
     * @param fileName 插件独立配置文件文件名
     * @param suffix   配置文件环境后缀，PluginConfiguration中定义
     * @return 拼接后的文件名
     */
    public static String joinConfigFileName(String fileName, String suffix) {
        // 若文件名为空，直接返回 null
        if (StringUtils.isNullOrEmpty(fileName)) {
            return null;
        }

        // 处理后缀为空的情况
        if (suffix == null) {
            suffix = "";
        }
        // 若后缀非空且不以 - 开头，添加 - 前缀
        if (StringUtils.isNotNullOrEmpty(suffix) && !suffix.startsWith("-")) {
            suffix = "-" + suffix;
        }

        // 查找文件名中最后一个 . 的位置
        int dotIndex = fileName.lastIndexOf('.');
        if (dotIndex == -1) {
            // 若没有 .，直接拼接文件名和后缀
            return fileName + suffix;
        }
        // 分割文件名和扩展名并拼接后缀
        return fileName.substring(0, dotIndex) + suffix + fileName.substring(dotIndex);
    }
}
