/**
* This file is part of Craftconomy3.
*
* Copyright (c) 2011-2016, Greatman <http://github.com/greatman/>
*
* Craftconomy3 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Craftconomy3 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Craftconomy3. If not, see <http://www.gnu.org/licenses/>.
*/
package com.greatmancode.craftconomy3.storage.sql;
import com.greatmancode.craftconomy3.Cause;
import com.greatmancode.craftconomy3.Common;
import com.greatmancode.craftconomy3.LogInfo;
import com.greatmancode.craftconomy3.account.Account;
import com.greatmancode.craftconomy3.account.AccountACLValue;
import com.greatmancode.craftconomy3.account.Balance;
import com.greatmancode.craftconomy3.commands.currency.CurrencyRatesCommand;
import com.greatmancode.craftconomy3.commands.money.LogCommand;
import com.greatmancode.craftconomy3.commands.money.TopCommand;
import com.greatmancode.craftconomy3.converter.Converter;
import com.greatmancode.craftconomy3.currency.Currency;
import com.greatmancode.craftconomy3.groups.WorldGroup;
import com.greatmancode.craftconomy3.storage.StorageEngine;
import com.greatmancode.craftconomy3.storage.sql.tables.ConfigTable;
import com.greatmancode.craftconomy3.utils.NoExchangeRate;
import com.greatmancode.tools.utils.Tools;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.io.File;
import java.sql.*;
import java.util.List;
import java.util.Map;
import java.util.UUID;
public class SQLiteEngine extends StorageEngine {
private final HikariDataSource db;
private final String tablePrefix;
private ConfigTable configTable = null;
public SQLiteEngine() {
this.tablePrefix = Common.getInstance().getMainConfig().getString("System.Database.Prefix");
HikariConfig config = new HikariConfig();
config.setDriverClassName("org.sqlite.JDBC");
config.setJdbcUrl("jdbc:sqlite:"+ Common.getInstance().getServerCaller().getDataFolder() + File.separator + "database.db");
config.setConnectionTestQuery("SELECT 1");
db = new HikariDataSource(config);
configTable = new ConfigTable(tablePrefix);
}
@Override
public void disable() {
}
@Override
public Account getAccount(String name, boolean isBank, boolean createDefault) {
return null;
}
@Override
public Account getAccount(UUID uuid) {
return null;
}
@Override
public List<String> getAllAccounts(boolean bank) {
return null;
}
@Override
public void saveLog(LogInfo info, Cause cause, String causeReason, Account account, double amount, Currency currency, String worldName) {
}
@Override
public void saveLog(LogInfo info, Cause cause, String causeReason, Account account, double amount, Currency currency, String worldName, Timestamp timestamp) {
}
@Override
public String getConfigEntry(String name) {
Connection connection = null;
PreparedStatement statement = null;
String result = null;
try {
connection = db.getConnection();
statement = connection.prepareStatement(configTable.selectEntry);
statement.setString(1, name);
ResultSet set = statement.executeQuery();
if (set.next()) {
result = set.getString("value");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
Tools.closeJDBCStatement(statement);
Tools.closeJDBCConnection(connection);
}
return result;
}
@Override
public void setConfigEntry(String name, String value) {
}
@Override
public List<Balance> getAllBalance(Account account) {
return null;
}
@Override
public List<Balance> getAllWorldBalance(Account account, String world) {
return null;
}
@Override
public double getBalance(Account account, Currency currency, String world) {
return 0;
}
@Override
public double setBalance(Account account, double amount, Currency currency, String world) {
return 0;
}
@Override
public void setInfiniteMoney(Account account, boolean infinite) {
}
@Override
public void setIgnoreACL(Account account, boolean ignoreACL) {
}
@Override
public Map<String, AccountACLValue> retrieveACL(Account account) {
return null;
}
@Override
public AccountACLValue saveACL(Account account, String name, boolean deposit, boolean withdraw, boolean acl, boolean show, boolean owner) {
return null;
}
@Override
public double getExchangeRate(Currency currency, Currency otherCurrency) throws NoExchangeRate {
return 0;
}
@Override
public void setExchangeRate(Currency currency, Currency otherCurrency, double amount) {
}
@Override
public void saveCurrency(String oldName, Currency currency) {
}
@Override
public void deleteCurrency(Currency currency) {
}
@Override
public void updateUsername(String name, UUID uuid) {
}
@Override
public void updateUUID(String name, UUID uuid) {
}
@Override
public Map<String, WorldGroup> getWorldGroups() {
return null;
}
@Override
public void removeWorldGroup(String group) {
}
@Override
public String[] getBankAccountList(String playerName) {
return new String[0];
}
@Override
public List<LogCommand.LogEntry> getLog(Account user, int page) {
return null;
}
@Override
public List<TopCommand.TopEntry> getTopEntry(int page, Currency currency, String world) {
return null;
}
@Override
public List<CurrencyRatesCommand.CurrencyRateEntry> getCurrencyExchanges() {
return null;
}
@Override
public void cleanLog(Timestamp timestamp) {
}
@Override
public boolean deleteAccount(String name, boolean bankAccount) {
return false;
}
@Override
public boolean accountExist(String name, boolean bankAccount) {
return false;
}
@Override
public void saveWorldGroup(String name, String worldList) {
}
@Override
public List<String> getAllCurrencyNames() {
return null;
}
@Override
public void setDefaultCurrency(Currency currency) {
}
@Override
public void setDefaultBankCurrency(Currency currency) {
}
@Override
public Currency getCurrency(String name) {
return null;
}
@Override
public Map<String, Currency> getAllCurrencies() {
return null;
}
@Override
public String retrieveWorldGroupWorlds(String name) {
return null;
}
@Override
public void saveImporterUsers(List<Converter.User> userList) {
}
@Override
public void disableAutoCommit() {
}
@Override
public void enableAutoCommit() {
}
@Override
public void commit() {
}
}