@@ -0,0 +1,3007 @@
+package org.fakekoji.jobmanager;%0A%0Aimport org.fakekoji.model.BuildProvider;%0Aimport org.fakekoji.model.Platform;%0Aimport org.fakekoji.model.Product;%0Aimport org.fakekoji.jobmanager.model.Project;%0Aimport org.fakekoji.model.Task;%0Aimport org.fakekoji.model.TaskVariantCategory;%0Aimport org.fakekoji.storage.DirectoryJsonStorage;%0Aimport org.fakekoji.storage.Storage;%0A%0Aimport java.nio.file.Paths;%0A%0Apublic class ConfigManager %7B%0A%0A    private final static String BUILD_PROVIDERS = %22buildProviders%22;%0A    private final static String PRODUCTS = %22products%22;%0A    private final static String TASK_VARIANT_CATEGORIES = %22taskVariantCategories%22;%0A    private final static String PLATFORMS = %22platforms%22;%0A    private final static String PROJECTS = %22projects%22;%0A    private final static String TASKS = %22tasks%22;%0A%0A    private final Storage%3CBuildProvider%3E buildProviderStorage;%0A    private final Storage%3CProduct%3E productStorage;%0A    private final Storage%3CTaskVariantCategory%3E taskVariantCategoryStorage;%0A    private final Storage%3CPlatform%3E platformStorage;%0A    private final Storage%3CProject%3E projectStorage;%0A    private final Storage%3CTask%3E taskStorage;%0A%0A    private ConfigManager(%0A            Storage%3CBuildProvider%3E buildProviderStorage,%0A            Storage%3CProduct%3E productStorage,%0A            Storage%3CTaskVariantCategory%3E taskVariantCategoryStorage,%0A            Storage%3CPlatform%3E platformStorage,%0A            Storage%3CProject%3E projectStorage,%0A            Storage%3CTask%3E taskStorage%0A    ) %7B%0A        this.buildProviderStorage = buildProviderStorage;%0A        this.productStorage = productStorage;%0A        this.taskVariantCategoryStorage = taskVariantCategoryStorage;%0A        this.platformStorage = platformStorage;%0A        this.projectStorage = projectStorage;%0A        this.taskStorage = taskStorage;%0A    %7D%0A%0A    public static ConfigManager create(String storagePath) %7B%0A        return new ConfigManager(%0A                new DirectoryJsonStorage%3C%3E(Paths.get(storagePath, BUILD_PROVIDERS).toFile()),%0A                new DirectoryJsonStorage%3C%3E(Paths.get(storagePath, PRODUCTS).toFile()),%0A                new DirectoryJsonStorage%3C%3E(Paths.get(storagePath, TASK_VARIANT_CATEGORIES).toFile()),%0A                new DirectoryJsonStorage%3C%3E(Paths.get(storagePath, PLATFORMS).toFile()),%0A                new DirectoryJsonStorage%3C%3E(Paths.get(storagePath, PROJECTS).toFile()),%0A                new DirectoryJsonStorage%3C%3E(Paths.get(storagePath, TASKS).toFile())%0A        );%0A    %7D%0A%0A    public Storage%3CBuildProvider%3E getBuildProviderStorage() %7B%0A        return buildProviderStorage;%0A    %7D%0A%0A    public Storage%3CProduct%3E getProductStorage() %7B%0A        return productStorage;%0A    %7D%0A%0A    public Storage%3CTaskVariantCategory%3E getTaskVariantCategoryStorage() %7B%0A        return taskVariantCategoryStorage;%0A    %7D%0A%0A    public Storage%3CPlatform%3E getPlatformStorage() %7B%0A        return platformStorage;%0A    %7D%0A%0A    public Storage%3CProject%3E getProjectStorage() %7B%0A        return projectStorage;%0A    %7D%0A%0A    public Storage%3CTask%3E getTaskStorage() %7B%0A        return taskStorage;%0A    %7D%0A%7D%0A

Create ConfigManager so all config storage are accessible from one place