Skip to content

Commit 0434e9a

Browse files
committed
Naming changes
1 parent 35c4dfc commit 0434e9a

7 files changed

Lines changed: 32 additions & 21 deletions

File tree

asql-core/src/main/java/me/zort/sqllib/SQLConnectionRegistry.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public static void debug(Connection connection, String message) {
5050
private static class RegistryCodeHandler implements SQLDatabaseConnection.CodeObserver {
5151
private final SQLDatabaseConnection connection;
5252

53+
// This will ensure that only connected instances are present in the registry
5354
@Override
5455
public void onNotified(int code) {
5556
if (code == SQLDatabaseConnection.Code.CONNECTED) {

asql-core/src/main/java/me/zort/sqllib/SQLDatabaseOptions.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import me.zort.sqllib.api.ISQLDatabaseOptions;
88
import me.zort.sqllib.api.options.NamingStrategy;
99
import me.zort.sqllib.internal.Defaults;
10-
import me.zort.sqllib.naming.SymbolSeparatedNamingStrategy;
1110
import org.jetbrains.annotations.NotNull;
1211

1312
@AllArgsConstructor

asql-core/src/main/java/me/zort/sqllib/internal/Defaults.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
import com.google.gson.Gson;
44
import com.google.gson.GsonBuilder;
55
import me.zort.sqllib.api.options.NamingStrategy;
6-
import me.zort.sqllib.naming.SymbolSeparatedNamingStrategy;
6+
import me.zort.sqllib.naming.SnakeCaseNamingStrategy;
77

88
public final class Defaults {
99

1010
public static final String DEFAULT_DRIVER = "com.mysql.jdbc.Driver";
1111
public static final boolean DEFAULT_AUTO_RECONNECT = true;
1212
public static final boolean DEFAULT_DEBUG = false;
1313
public static final boolean DEFAULT_LOG_SQL_ERRORS = true;
14-
public static final NamingStrategy DEFAULT_NAMING_STRATEGY = new SymbolSeparatedNamingStrategy('_');
14+
public static final NamingStrategy DEFAULT_NAMING_STRATEGY = new SnakeCaseNamingStrategy('_');
1515

1616
public static final Gson DEFAULT_GSON = new GsonBuilder()
1717
.enableComplexMapKeySerialization()

asql-core/src/main/java/me/zort/sqllib/model/SQLSchemaSynchronizer.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,18 @@ public class SQLSchemaSynchronizer implements SchemaSynchronizer<SQLDatabaseConn
1919

2020
private SQLColumnQueryBuilder columnQueryBuilder = new InnoColumnQueryBuilder();
2121
private SQLColumnTypeAdjuster columnTypeAdjuster = type -> type;
22+
// Should we execute the queries ony-by-one?
2223
private boolean separateQueries = false;
2324

2425
@Override
2526
public QueryResult synchronize(SQLDatabaseConnection source, TableSchema from, TableSchema to) {
2627
List<String> columnQueries = new ArrayList<>();
28+
// Order definitions to make sure we don't synchronize different columns
2729
ColumnDefinition[][] definitions = orderDefinitions(from, to);
30+
2831
for (int i = 0; i < Math.max(definitions[0].length, definitions[1].length); i++) {
32+
// Try to build statement that will change the column using the provided
33+
// definitions pair.
2934
final ColumnDefinition fromDefinition = definitions[0][i];
3035
final ColumnDefinition toDefinition = definitions[1][i];
3136

@@ -46,10 +51,12 @@ public QueryResult synchronize(SQLDatabaseConnection source, TableSchema from, T
4651
if (columnQueries.size() == 0) return QueryResult.noChangesResult;
4752
List<QueryResult> results = new ArrayList<>();
4853
if (separateQueries) {
54+
// Execute modification queries one-by-one if requested.
4955
for (String query : columnQueries) {
5056
results.add(source.exec(query));
5157
}
5258
} else {
59+
// Execute all queries at once.
5360
results.add(source.exec(String.join("", columnQueries)));
5461
}
5562
return results.stream().allMatch(QueryResult::isSuccessful) ? QueryResult.successful() : new QueryResultImpl(false);

asql-core/src/main/java/me/zort/sqllib/naming/SymbolSeparatedNamingStrategy.java renamed to asql-core/src/main/java/me/zort/sqllib/naming/SnakeCaseNamingStrategy.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,22 @@
1010
* @author ZorTik
1111
*/
1212
@AllArgsConstructor
13-
public class SymbolSeparatedNamingStrategy implements NamingStrategy {
13+
public class SnakeCaseNamingStrategy implements NamingStrategy {
1414

1515
private final char symbol;
1616
private final boolean upperCase;
1717

18+
public SnakeCaseNamingStrategy() {
19+
this('_');
20+
}
21+
1822
/**
1923
* Creates a naming strategy with provided symbol that
2024
* converts names to lower case.
2125
*
2226
* @param symbol The symbol to separate words with.
2327
*/
24-
public SymbolSeparatedNamingStrategy(char symbol) {
28+
public SnakeCaseNamingStrategy(char symbol) {
2529
this(symbol, false);
2630
}
2731

asql-core/src/main/java/me/zort/sqllib/pool/SQLConnectionPool.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,20 @@
2828
@RequiredArgsConstructor
2929
public final class SQLConnectionPool {
3030

31+
private final ISQLConnectionBuilder<? extends SQLDatabaseConnection> builder;
32+
private final int maxConnections;
33+
private final long borrowObjectTimeout;
34+
private final boolean blockWhenExhausted;
35+
private final boolean checkConnectionValidity;
36+
private final int checkConnectionValidityTimeout;
37+
private final ISQLDatabaseOptions connectionOptions;
38+
39+
private volatile int errorCount = 0;
40+
41+
// --***-- Pooled connection caches --***--
42+
private final Queue<PooledSQLDatabaseConnection> freeConnections = new ConcurrentLinkedQueue<>();
43+
private final List<PooledSQLDatabaseConnection> usedConnections = new CopyOnWriteArrayList<>();
44+
3145
@Data
3246
public static final class Options {
3347
// Max number of connections in the pool
@@ -43,20 +57,6 @@ public static final class Options {
4357
private ISQLDatabaseOptions connectionOptions = null;
4458
}
4559

46-
private final ISQLConnectionBuilder<? extends SQLDatabaseConnection> builder;
47-
private final int maxConnections;
48-
private final long borrowObjectTimeout;
49-
private final boolean blockWhenExhausted;
50-
private final boolean checkConnectionValidity;
51-
private final int checkConnectionValidityTimeout;
52-
private final ISQLDatabaseOptions connectionOptions;
53-
54-
private volatile int errorCount = 0;
55-
56-
// --***-- Pooled connection caches --***--
57-
private final Queue<PooledSQLDatabaseConnection> freeConnections = new ConcurrentLinkedQueue<>();
58-
private final List<PooledSQLDatabaseConnection> usedConnections = new CopyOnWriteArrayList<>();
59-
6060
@SuppressWarnings("unused")
6161
public SQLConnectionPool(final @NotNull ISQLConnectionBuilder<? extends SQLDatabaseConnection> from) {
6262
this(from, new Options());

src/test/java/me/zort/sqllib/test/TestCase3.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package me.zort.sqllib.test;
22

33
import lombok.extern.log4j.Log4j2;
4-
import me.zort.sqllib.naming.SymbolSeparatedNamingStrategy;
4+
import me.zort.sqllib.naming.SnakeCaseNamingStrategy;
55
import org.junit.jupiter.api.MethodOrderer;
66
import org.junit.jupiter.api.Test;
77
import org.junit.jupiter.api.TestInstance;
@@ -19,7 +19,7 @@ public class TestCase3 { // Smaller independent modules tests
1919

2020
@Test
2121
public void testSymbolSeparatedStrategy() {
22-
SymbolSeparatedNamingStrategy strategy = new SymbolSeparatedNamingStrategy('_');
22+
SnakeCaseNamingStrategy strategy = new SnakeCaseNamingStrategy('_');
2323
assertEquals("test", strategy.fieldNameToColumn("test"));
2424
assertEquals("test_two", strategy.fieldNameToColumn("testTwo"));
2525
assertEquals("this_is_third_test", strategy.fieldNameToColumn("thisIsThirdTest"));

0 commit comments

Comments
 (0)