123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package com.hccake.ballcat.codegen.converter;
- import cn.hutool.core.util.StrUtil;
- import com.hccake.ballcat.codegen.constant.TemplateEntryTypeEnum;
- import com.hccake.ballcat.codegen.model.bo.FileEntry;
- import com.hccake.ballcat.codegen.model.bo.TemplateEntryFileTree;
- import com.hccake.ballcat.codegen.model.dto.TemplateEntryCreateDTO;
- import com.hccake.ballcat.codegen.model.dto.TemplateEntryUpdateDTO;
- import com.hccake.ballcat.codegen.model.entity.TemplateEntry;
- import com.hccake.ballcat.codegen.model.entity.TemplateGroup;
- import com.hccake.ballcat.codegen.model.vo.GeneratePreviewFileVO;
- import com.hccake.ballcat.codegen.model.vo.TemplateEntryTree;
- import com.hccake.ballcat.codegen.model.vo.TemplateEntryVO;
- import com.hccake.ballcat.codegen.model.vo.TemplateGroupPageVO;
- import org.mapstruct.Mapper;
- import org.mapstruct.Mapping;
- import org.mapstruct.factory.Mappers;
- import java.nio.charset.StandardCharsets;
- /**
- * @author Hccake
- * @version 1.0
- * @date 2020/6/19 20:01
- */
- @Mapper
- public interface TemplateModelConverter {
- TemplateModelConverter INSTANCE = Mappers.getMapper(TemplateModelConverter.class);
- /**
- * 文件内容转模板文件内容,byte[] to string
- * @param templateEntry 模板目录下
- * @return 字符串
- */
- default String mapTemplateContent(TemplateEntry templateEntry) {
- if (TemplateEntryTypeEnum.TEMPLATE_FILE.getType().equals(templateEntry.getType())) {
- return StrUtil.str(templateEntry.getFileContent(), StandardCharsets.UTF_8);
- }
- return null;
- }
- /**
- * 文件内容转模板文件内容,byte[] to string
- * @param fileContent 模板文件内容
- * @return 字符串
- */
- default String mapTemplateContent(byte[] fileContent) {
- return StrUtil.str(fileContent, StandardCharsets.UTF_8);
- }
- /**
- * 数值类型转枚举
- * @param type 文件类型
- * @return TemplateEntryTypeEnum
- */
- default TemplateEntryTypeEnum mapType(Integer type) {
- switch (type) {
- case 1:
- return TemplateEntryTypeEnum.FOLDER;
- case 2:
- return TemplateEntryTypeEnum.TEMPLATE_FILE;
- case 3:
- return TemplateEntryTypeEnum.BINARY_FILE;
- default:
- throw new RuntimeException("模板文件的类型转换异常,未知的类型:" + type);
- }
- }
- /**
- * 转枚举数值类型
- * @param type 文件类型
- * @return Integer
- */
- default Integer mapType(TemplateEntryTypeEnum type) {
- return type.getType();
- }
- /**
- * 模板组 PO 转换为 PageVO
- * @param templateGroup 模板组实体
- * @return TemplateGroupPageVO 模板组分页VO
- */
- TemplateGroupPageVO groupPoToPageVo(TemplateGroup templateGroup);
- /**
- * 转换 TemplateEntry 为 TemplateEntryVO
- * @param templateEntry templateEntry
- * @return VO
- */
- @Mapping(target = "templateContent", source = "templateEntry")
- TemplateEntryVO entryPoToVo(TemplateEntry templateEntry);
- /**
- * 转换 TemplateEntryCreateDTO to TemplateEntry
- * @param entryCreateDTO entryCreateDTO
- * @return TemplateDirectoryEntry 持久对象
- */
- TemplateEntry entryCreateDtoToPo(TemplateEntryCreateDTO entryCreateDTO);
- /**
- * 转换 TemplateEntryUpdateDTO to TemplateEntry
- * @param entryUpdateDTO entryUpdateDTO
- * @return TemplateEntry 持久对象
- */
- TemplateEntry entryUpdateDtoToPo(TemplateEntryUpdateDTO entryUpdateDTO);
- /**
- * 转换为目录树
- * @param templateEntry templateDirectoryEntry
- * @return TemplateDirectoryTree
- */
- @Mapping(target = "type", source = "type")
- TemplateEntryTree entryPoToTree(TemplateEntry templateEntry);
- /**
- * 树转换为 po
- * @param templateEntryFileTree TemplateEntryTree
- * @return TemplateEntry
- */
- TemplateEntry entryFileTreeToPo(TemplateEntryFileTree templateEntryFileTree);
- /**
- * 文件项转预览文件VO
- * @param fileEntry 文件项
- * @return GeneratePreviewFileVO
- */
- @Mapping(target = "templateContent", source = "fileContent")
- @Mapping(target = "type", source = "type")
- GeneratePreviewFileVO fileEntryToPreviewVo(FileEntry fileEntry);
- }
|