001package com.credibledoc.substitution.reporting.placeholder;
002
003import com.credibledoc.substitution.core.placeholder.Placeholder;
004import com.credibledoc.substitution.reporting.reportdocument.ReportDocument;
005
006import java.util.HashMap;
007import java.util.Map;
008
009/**
010 * A stateful class. Contains a {@link #placeholderToReportDocumentMap}.
011 *
012 * @author Kyrylo Semenko
013 */
014public class PlaceholderToReportDocumentRepository {
015
016    /**
017     * Singleton.
018     */
019    private static final PlaceholderToReportDocumentRepository instance = new PlaceholderToReportDocumentRepository();
020
021    /**
022     * @return The {@link PlaceholderToReportDocumentRepository} singleton.
023     */
024    public static PlaceholderToReportDocumentRepository getInstance() {
025        return instance;
026    }
027
028    /**
029     * This map is filled out during a preparation phase and used in a generation phase.
030     * It maps {@link Placeholder} to {@link ReportDocument}.
031     */
032    private Map<Placeholder, ReportDocument> placeholderToReportDocumentMap = new HashMap<>();
033
034    /**
035     * @return The {@link #placeholderToReportDocumentMap} field value.
036     */
037    public Map<Placeholder, ReportDocument> getPlaceholderToReportDocumentMap() {
038        return placeholderToReportDocumentMap;
039    }
040
041    /**
042     * @param placeholderToReportDocumentMap see the {@link #placeholderToReportDocumentMap} field description.
043     */
044    public void setPlaceholderToReportDocumentMap(Map<Placeholder, ReportDocument> placeholderToReportDocumentMap) {
045        this.placeholderToReportDocumentMap = placeholderToReportDocumentMap;
046    }
047}