| | |
| | | package org.springblade.mdm.program.service.programannotation; |
| | | |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.mdm.program.service.ProgramAnnotationService; |
| | | import org.springblade.mdm.program.vo.ProgramAnnotation; |
| | | import org.springblade.system.pojo.entity.DictBiz; |
| | | |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | |
| | | public interface AnnotationProcessor { |
| | | static final String DEFAULT_ANNOTATION_SETTING = "(,)"; |
| | | |
| | | default String generateAnnotation(String oriTest, String systemDictVal, List<DictBiz> annotationList) { |
| | | ProgramAnnotation progAnnotation = this.getProgramAnnotationFormat(systemDictVal,annotationList); |
| | | return progAnnotation.addAnnotation(oriTest); |
| | | } |
| | | default boolean isAnnotation(String line,String systemDictVal,List<DictBiz> annotationList){ |
| | | ProgramAnnotation progAnnotation = this.getProgramAnnotationFormat(systemDictVal,annotationList); |
| | | |
| | | line = StringUtils.trim(line);//去首尾空格 |
| | | return progAnnotation.isAnnotation(line); |
| | | } |
| | | |
| | | default ProgramAnnotation getProgramAnnotationFormat(String systemDictVal,List<DictBiz> annoDictList){ |
| | | String begin; |
| | | String end; |
| | | |
| | | Optional<DictBiz> dictOpt = annoDictList.stream().filter(dict -> {return dict.getDictKey().equals(systemDictVal);}).findFirst(); |
| | | String annotationSetting = DEFAULT_ANNOTATION_SETTING; |
| | | if(dictOpt.isPresent()) { |
| | | annotationSetting = dictOpt.get().getRemark(); |
| | | } |
| | | String[] arr = StringUtils.split(annotationSetting,","); |
| | | if(arr.length == 2){ |
| | | begin = arr[0]; |
| | | end = arr[1]; |
| | | }else if(arr.length == 1){ |
| | | begin = arr[0]; |
| | | end = ""; |
| | | }else{ |
| | | throw new ServiceException("注释格式配置错误,应该为1到2段,中间用逗号分隔"); |
| | | } |
| | | |
| | | ProgramAnnotation programAnnotation = new ProgramAnnotation(); |
| | | programAnnotation.setBegin(begin); |
| | | programAnnotation.setEnd(end); |
| | | return programAnnotation; |
| | | } |
| | | void setControlSystem(String controlSystemDictVal); |
| | | void setAnnotationProperties(AnnotationProperties annotationProperties); |
| | | String getControlSystem(); |
| | | InputStream setAnnotation(AnnotationData annoData,InputStream inputStream) throws IOException; |
| | | InputStream putAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException; |
| | | |
| | | InputStream putFilenameAnnotation(String programName, InputStream inputStream) throws IOException; |
| | | |
| | | AnnotationProperties getAnnotationProperties(); |
| | | //InputStream puttSendPathAnnotation(String programName, InputStream inputStream) throws IOException; |
| | | } |