// Copyright 2015 ThoughtWorks, Inc. // This file is part of Gauge-Java. // This program is free software. // // It is dual-licensed under: // 1) the GNU General Public License as published by the Free Software Foundation, // either version 3 of the License, or (at your option) any later version; // or // 2) the Eclipse Public License v1.0. // // You can redistribute it and/or modify it under the terms of either license. // We would then provide copied of each license in a separate .txt file with the name of the license as the title of the file. package com.thoughtworks.gauge.datastore; public class DataStoreFactory { private static ThreadLocal<DataStore> suiteDataStore = new InheritableThreadLocal<DataStore>() { @Override protected DataStore initialValue() { return new DataStore(); } }; private static ThreadLocal<DataStore> specDataStore = new InheritableThreadLocal<DataStore>() { @Override protected DataStore initialValue() { return new DataStore(); } }; private static ThreadLocal<DataStore> scenarioDataStore = new InheritableThreadLocal<DataStore>() { @Override protected DataStore initialValue() { return new DataStore(); } }; /** * @return The current instance of the SuiteDataStore */ public static DataStore getSuiteDataStore() { return suiteDataStore.get(); } /** * @return The current instance of the SpecDataStore */ public static DataStore getSpecDataStore() { return specDataStore.get(); } /** * @return The current instance of the ScenarioDataStore */ public static DataStore getScenarioDataStore() { return scenarioDataStore.get(); } }