yangys
2025-09-10 dc01577b31204fd3c80645b45d81ff693f79a985
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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;
 
}