// Path: src/main/java/guru/franz/mc/bcl/exception/Exception.java
// public class Exception extends java.lang.Exception {
// 
//     public Exception() {
//     }
// 
//     public Exception(Throwable cause) {
//         super(cause);
//     }
// 
//     public Exception(String message) {
//         super(message);
//     }
// }


import guru.franz.mc.bcl.exception.Exception;
import java.util.HashMap;
import java.util.Map;
package guru.franz.mc.bcl.datastore;



/**
 * DataStore manager<br>
 * See IDataStore interface if you want to implement your custom DataStore
 */
public final class DataStoreManager {

    private static final Map<String, Class<? extends IDataStore>> dataStores = new HashMap<>();
    private static IDataStore dataStore;

    /**
     * Register a new DataStore. This should be run at onLoad()<br>
     *
     * @param dataStoreId    ID that identifies this DataStore <br>
     * @param dataStoreClass a class that implements IDataStore
     */
    public static void registerDataStore(String dataStoreId, Class<? extends IDataStore> dataStoreClass) {
        dataStores.put(dataStoreId, dataStoreClass);
    }

    /**
     * Sets and instantiate the DataStore
     */
// Path: src/main/java/guru/franz/mc/bcl/exception/Exception.java
// public class Exception extends java.lang.Exception {
// 
//     public Exception() {
//     }
// 
//     public Exception(Throwable cause) {
//         super(cause);
//     }
// 
//     public Exception(String message) {
//         super(message);
//     }
// }


// Path: src/main/java/guru/franz/mc/bcl/datastore/DataStoreManager.java
import guru.franz.mc.bcl.exception.Exception;
import java.util.HashMap;
import java.util.Map;

package guru.franz.mc.bcl.datastore;



/**
 * DataStore manager<br>
 * See IDataStore interface if you want to implement your custom DataStore
 */
public final class DataStoreManager {

    private static final Map<String, Class<? extends IDataStore>> dataStores = new HashMap<>();
    private static IDataStore dataStore;

    /**
     * Register a new DataStore. This should be run at onLoad()<br>
     *
     * @param dataStoreId    ID that identifies this DataStore <br>
     * @param dataStoreClass a class that implements IDataStore
     */
    public static void registerDataStore(String dataStoreId, Class<? extends IDataStore> dataStoreClass) {
        dataStores.put(dataStoreId, dataStoreClass);
    }

    /**
     * Sets and instantiate the DataStore
     */
    public static void setDataStoreInstance(String dataStoreId) throws Exception {