001package com.credibledoc.substitution.doc.module.substitution.launching; 002 003import com.credibledoc.combiner.log.buffered.LogBufferedReader; 004import com.credibledoc.substitution.core.placeholder.Placeholder; 005import com.credibledoc.substitution.core.placeholder.PlaceholderService; 006import com.credibledoc.enricher.deriving.Deriving; 007import com.credibledoc.substitution.reporting.markdown.MarkdownService; 008import com.credibledoc.enricher.transformer.Transformer; 009import lombok.RequiredArgsConstructor; 010import org.springframework.stereotype.Service; 011 012import javax.inject.Inject; 013import java.util.List; 014 015@Service 016@RequiredArgsConstructor(onConstructor = @__(@Inject)) 017public class ContentReplacedTransformer implements Transformer { 018 019 private static final String LINE_SEPARATOR = System.lineSeparator(); 020 021 @Override 022 public String transform(Deriving deriving, 023 List<String> multiLine, LogBufferedReader logBufferedReader) { 024 025 String plantUml = ":" + MarkdownService.CONTENT_REPLACED + ";" + LINE_SEPARATOR + 026 "note right" + LINE_SEPARATOR + 027 parsePlaceholderDescription(multiLine) + LINE_SEPARATOR + 028 "end note" + LINE_SEPARATOR; 029 030 deriving.getCacheLines().add(plantUml); 031 032 return null; 033 } 034 035 private String parsePlaceholderDescription(List<String> multiLine) { 036 String line = multiLine.get(0); 037 int beginIndex = line.indexOf(MarkdownService.CONTENT_REPLACED); 038 String json = line.substring(beginIndex + MarkdownService.CONTENT_REPLACED.length()); 039 Placeholder placeholder = PlaceholderService.getInstance().readPlaceholderFromJson(json); 040 return placeholder.getDescription(); 041 } 042 043}