Skip to content

Commit

Permalink
centralize SqlStorageSupplier constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
HSGamer committed Jan 30, 2025
1 parent 13b2bb8 commit 511a29a
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 31 deletions.
Original file line number Diff line number Diff line change
@@ -1,25 +1,14 @@
package me.hsgamer.topper.storage.simple.supplier;

import me.hsgamer.hscore.database.Setting;
import me.hsgamer.hscore.database.client.sql.java.JavaSqlClient;
import me.hsgamer.hscore.database.driver.mysql.MySqlDriver;
import me.hsgamer.topper.storage.simple.setting.DatabaseSetting;

import java.util.Collections;
import java.util.List;

public class MySqlStorageSupplier extends SqlStorageSupplier {
private final JavaSqlClient client;

public MySqlStorageSupplier(DatabaseSetting databaseSetting) {
Setting setting = Setting.create(new MySqlDriver());
applyDatabaseSetting(databaseSetting, setting);
client = new JavaSqlClient(setting);
}

@Override
public JavaSqlClient getClient() {
return client;
super(new MySqlDriver(), databaseSetting);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package me.hsgamer.topper.storage.simple.supplier;

import me.hsgamer.hscore.database.Driver;
import me.hsgamer.hscore.database.Setting;
import me.hsgamer.hscore.database.client.sql.BatchBuilder;
import me.hsgamer.hscore.database.client.sql.SqlClient;
import me.hsgamer.hscore.database.client.sql.StatementBuilder;
import me.hsgamer.hscore.database.client.sql.java.JavaSqlClient;
import me.hsgamer.hscore.logger.common.LogLevel;
import me.hsgamer.hscore.logger.common.Logger;
import me.hsgamer.hscore.logger.provider.LoggerProvider;
Expand All @@ -20,9 +22,18 @@

public abstract class SqlStorageSupplier implements DataStorageSupplier {
protected final Logger logger = LoggerProvider.getLogger(getClass());
private final SqlClient<?> client;
private final Lock lock = new ReentrantLock();

protected static void applyDatabaseSetting(DatabaseSetting databaseSetting, Setting setting) {
protected SqlStorageSupplier(SqlClient<?> client) {
this.client = client;
}

protected SqlStorageSupplier(Driver driver, DatabaseSetting databaseSetting) {
this(new JavaSqlClient(applyDatabaseSetting(databaseSetting, Setting.create(driver))));
}

protected static Setting applyDatabaseSetting(DatabaseSetting databaseSetting, Setting setting) {
setting.setHost(databaseSetting.getHost());
setting.setPort(databaseSetting.getPort());
setting.setDatabaseName(databaseSetting.getDatabase());
Expand All @@ -33,10 +44,9 @@ protected static void applyDatabaseSetting(DatabaseSetting databaseSetting, Sett
}
setting.setDriverProperties(databaseSetting.getDriverProperties());
setting.setClientProperties(databaseSetting.getClientProperties());
return setting;
}

protected abstract SqlClient<?> getClient();

protected boolean isSingleThread() {
return false;
}
Expand All @@ -63,7 +73,7 @@ public <K, V> DataStorage<K, V> getStorage(String name, ValueConverter<K> keyCon
@Override
public Map<K, V> load() {
lock();
try (Connection connection = getClient().getConnection()) {
try (Connection connection = client.getConnection()) {
return StatementBuilder.create(connection)
.setStatement("SELECT * FROM `" + name + "`;")
.queryList(resultSet -> new AbstractMap.SimpleEntry<>(keyConverter.fromSqlResultSet(resultSet), valueConverter.fromSqlResultSet(resultSet)))
Expand All @@ -81,7 +91,7 @@ public Map<K, V> load() {
@Override
public Optional<V> load(K key) {
lock();
try (Connection connection = getClient().getConnection()) {
try (Connection connection = client.getConnection()) {
String[] keyColumns = keyConverter.getSqlColumns();
Object[] keyValues = keyConverter.toSqlValues(key);

Expand Down Expand Up @@ -115,7 +125,7 @@ public Optional<V> load(K key) {
public Optional<Modifier<K, V>> modify() {
lock();
try {
Connection connection = getClient().getConnection();
Connection connection = client.getConnection();
connection.setAutoCommit(false);
Modifier<K, V> modifier = new Modifier<K, V>() {
@Override
Expand Down Expand Up @@ -208,7 +218,7 @@ public void rollback() {
@Override
public void onRegister() {
lock();
try (Connection connection = getClient().getConnection()) {
try (Connection connection = client.getConnection()) {
String[] keyColumns = keyConverter.getSqlColumns();
String[] keyColumnDefinitions = keyConverter.getSqlColumnDefinitions();
String[] valueColumns = valueConverter.getSqlColumns();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package me.hsgamer.topper.storage.simple.supplier;

import me.hsgamer.hscore.database.Setting;
import me.hsgamer.hscore.database.client.sql.java.JavaSqlClient;
import me.hsgamer.hscore.database.driver.sqlite.SqliteFileDriver;
import me.hsgamer.topper.storage.simple.setting.DatabaseSetting;

Expand All @@ -10,17 +8,8 @@
import java.util.List;

public class SqliteStorageSupplier extends SqlStorageSupplier {
private final JavaSqlClient client;

public SqliteStorageSupplier(DatabaseSetting databaseSetting, File baseHolder) {
Setting setting = Setting.create(new SqliteFileDriver(baseHolder));
applyDatabaseSetting(databaseSetting, setting);
client = new JavaSqlClient(setting);
}

@Override
public JavaSqlClient getClient() {
return client;
super(new SqliteFileDriver(baseHolder), databaseSetting);
}

@Override
Expand Down

0 comments on commit 511a29a

Please sign in to comment.