001package com.credibledoc.substitution.doc.module.substitution.participant;
002
003import com.credibledoc.substitution.core.content.Content;
004import com.credibledoc.substitution.core.content.ContentGenerator;
005import com.credibledoc.substitution.core.placeholder.Placeholder;
006import lombok.NonNull;
007import lombok.RequiredArgsConstructor;
008import net.steppschuh.markdowngenerator.table.Table;
009import com.credibledoc.substitution.doc.module.substitution.markdown.table.TableService;
010import com.credibledoc.substitution.doc.plantuml.Participant;
011import org.springframework.stereotype.Service;
012
013import javax.inject.Inject;
014
015/**
016 * Generates a table of {@link Participant}s maintained in the substitution-doc module.
017 */
018@Service
019@RequiredArgsConstructor(onConstructor = @__(@Inject))
020public class ParticipantsTableMarkdownGenerator implements ContentGenerator {
021
022    @NonNull
023    private final TableService tableService;
024
025    @Override
026    public Content generate(Placeholder placeholder) {
027        Table.Builder tableBuilder = new Table.Builder()
028                .addRow("Participant name", "Description");
029
030        String markdown = tableService.createMarkdownTableFromEnum(tableBuilder, Participant.class);
031        Content content = new Content();
032        content.setMarkdownContent(markdown);
033        return content;
034    }
035
036}