package org.buckit.datasource; import org.buckit.Config; import org.buckit.datasource.database.DatabaseAccessDataSource; import org.buckit.datasource.database.DatabaseFactory; import org.buckit.datasource.database.DatabaseHomesDataSource; import org.buckit.datasource.database.DatabaseKitsDataSource; import org.buckit.datasource.database.DatabaseReserveListDataSource; import org.buckit.datasource.database.DatabaseUserDataSource; import org.buckit.datasource.database.DatabaseWarpsDataSource; import org.buckit.datasource.database.DatabaseWhiteListDataSource; import org.buckit.datasource.flatfile.FlatFileAccessDataSource; import org.buckit.datasource.flatfile.FlatFileHomesDataSource; import org.buckit.datasource.flatfile.FlatFileKitsDataSource; import org.buckit.datasource.flatfile.FlatFileReserveListDataSource; import org.buckit.datasource.flatfile.FlatFileUserDataSource; import org.buckit.datasource.flatfile.FlatFileWarpsDataSource; import org.buckit.datasource.flatfile.FlatFileWhiteListDataSource; import org.buckit.datasource.type.AccessDataSource; import org.buckit.datasource.type.HomesDataSource; import org.buckit.datasource.type.KitsDataSource; import org.buckit.datasource.type.ReserveListDataSource; import org.buckit.datasource.type.UserDataSource; import org.buckit.datasource.type.WarpsDataSource; import org.buckit.datasource.type.WhiteListDataSource; import org.buckit.datasource.yaml.YamlAccessDataSource; import org.buckit.datasource.yaml.YamlHomesDataSource; import org.buckit.datasource.yaml.YamlKitsDataSource; import org.buckit.datasource.yaml.YamlReserveListDataSource; import org.buckit.datasource.yaml.YamlUserDataSource; import org.buckit.datasource.yaml.YamlWarpsDataSource; import org.buckit.datasource.yaml.YamlWhiteListDataSource; import org.bukkit.Server; public class DataSourceManager { private UserDataSource userdatasource; private WarpsDataSource warpsdatasource; private KitsDataSource kitsdatasource; private HomesDataSource homesdatasource; private AccessDataSource accessdatasource; private WhiteListDataSource whitelistdatasource; private ReserveListDataSource reservelistdatasource; private RequestDataSource requestdatasource; private Server server; private DataType type; public DataSourceManager(Server server) { this.server = server; load(); } private void load() { type = Config.DATA_SOURCE_TYPE; switch (Config.DATA_SOURCE_TYPE) { case DATABASE: userdatasource = new DatabaseUserDataSource(this); accessdatasource = new DatabaseAccessDataSource(this); kitsdatasource = new DatabaseKitsDataSource(this); homesdatasource = new DatabaseHomesDataSource(this); warpsdatasource = new DatabaseWarpsDataSource(this); whitelistdatasource = new DatabaseWhiteListDataSource(this); reservelistdatasource = new DatabaseReserveListDataSource(this); break; case FLATFILE: userdatasource = new FlatFileUserDataSource(this); accessdatasource = new FlatFileAccessDataSource(this); kitsdatasource = new FlatFileKitsDataSource(this); homesdatasource = new FlatFileHomesDataSource(this); warpsdatasource = new FlatFileWarpsDataSource(this); whitelistdatasource = new FlatFileWhiteListDataSource(this); reservelistdatasource = new FlatFileReserveListDataSource(this); break; case YAML: userdatasource = new YamlUserDataSource(this); accessdatasource = new YamlAccessDataSource(this); kitsdatasource = new YamlKitsDataSource(this); homesdatasource = new YamlHomesDataSource(this); warpsdatasource = new YamlWarpsDataSource(this); whitelistdatasource = new YamlWhiteListDataSource(this); reservelistdatasource = new YamlReserveListDataSource(this); break; } requestdatasource = new RequestDataSource(this); getRequestDataSource().load(); getAccessDataSource().load(); getUserDataSource().load(); if (Config.WARPS_ENABLED) getWarpsDataSource().load(); if (Config.HOMES_ENABLED) getHomesDataSource().load(); if (Config.KITS_ENABLED) getKitsDataSource().load(); if (Config.WHITELIST_ENABLED) getWhiteListDataSource().load(); if (Config.RESERVELIST_ENABLED) getReserveListDataSource().load(); } public void reload() { try { load(); if(Config.DATA_SOURCE_TYPE == DataType.DATABASE) DatabaseFactory.getInstance().reload(); } catch(Throwable t){ server.getLogger().warning("Error reloading DataSources, error:"); t.printStackTrace(); } } public DataType getType() { return type; } public String toString() { return "DataSourceManage,Type:" + type.name().toLowerCase(); } public UserDataSource getUserDataSource() { return userdatasource; } public WarpsDataSource getWarpsDataSource() { return warpsdatasource; } public KitsDataSource getKitsDataSource() { return kitsdatasource; } public HomesDataSource getHomesDataSource() { return homesdatasource; } public AccessDataSource getAccessDataSource() { return accessdatasource; } /** * @return the whitelistdatasource */ public WhiteListDataSource getWhiteListDataSource() { return whitelistdatasource; } /** * @return the reservelistdatasource */ public ReserveListDataSource getReserveListDataSource() { return reservelistdatasource; } /** * @return the requestdatasource */ public RequestDataSource getRequestDataSource() { return requestdatasource; } public Server getServer(){ return server; } }