001package com.credibledoc.substitution.reporting.reportdocument.creator;
002
003import java.util.HashMap;
004import java.util.Map;
005
006/**
007 * A stateful singleton. Contains the {@link #map}.
008 *
009 * @author Kyrylo Semenko
010 */
011public class ReportDocumentCreatorRepository {
012
013    /**
014     * This map contains {@link ReportDocumentCreator}s created by a client application where the keys are
015     * the map values implementation types.
016     */
017    private Map<Class<? extends ReportDocumentCreator>, ReportDocumentCreator> map = new HashMap<>();
018
019    /**
020     * @return The {@link #map} field value.
021     */
022    public Map<Class<? extends ReportDocumentCreator>, ReportDocumentCreator> getMap() {
023        return map;
024    }
025
026    /**
027     * @param map see the {@link #map} field description.
028     */
029    public void setMap(Map<Class<? extends ReportDocumentCreator>, ReportDocumentCreator> map) {
030        this.map = map;
031    }
032}