| | |
| | | package org.springblade.mdm.program.service.programannotation; |
| | | |
| | | import com.qiniu.util.IOUtils; |
| | | import org.apache.commons.io.FilenameUtils; |
| | | import org.springblade.mdm.program.service.ProgramAnnotationService; |
| | | import org.springblade.mdm.utils.FileContentUtil; |
| | | import org.springblade.system.pojo.entity.DictBiz; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.util.List; |
| | | |
| | | |
| | | @Component("defaultProcessor") |
| | |
| | | @Autowired |
| | | private ProgramAnnotationService programAnnotationService; |
| | | private String controlSystem; |
| | | private AnnotationProperties annotationPropreties; |
| | | |
| | | |
| | | @Override |
| | | public InputStream setAnnotation(AnnotationData annoData, InputStream inputStream) throws IOException { |
| | | List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList(); |
| | | ByteArrayInputStream bais = new ByteArrayInputStream(IOUtils.toByteArray(inputStream)); |
| | | |
| | | String line = FileContentUtil.readLineAt(bais, annotationProperties.getProgramNameLineIndex()); |
| | | bais.reset(); |
| | | boolean isAnnotation = AnnotationUtil.isAnnotation(line,controlSystem,annoDicts); |
| | | InputStream insAfter; |
| | | //加入程序名注释行 |
| | | String proNameLine = AnnotationUtil.generateAnnotation(FilenameUtils.removeExtension(annoData.getFilename()),getControlSystem(),annoDicts); |
| | | if(isAnnotation){ |
| | | insAfter = FileContentUtil.replaceAtLine(bais, annotationProperties.getProgramNameLineIndex(),proNameLine); |
| | | }else{ |
| | | insAfter = FileContentUtil.insertLine(bais, annotationProperties.getProgramNameLineIndex(),proNameLine); |
| | | } |
| | | |
| | | return super.setAnnotation(annoData, insAfter); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void setControlSystem(String controlSystemDictVal) { |
| | | this.controlSystem = controlSystemDictVal; |
| | | } |
| | | |
| | | @Override |
| | | public void setAnnotationProperties(AnnotationProperties annotationProperties) { |
| | | this.annotationPropreties= annotationProperties; |
| | | } |
| | | |
| | | @Override |