Skip to content

Commit

Permalink
Feature: config editing (#205)
Browse files Browse the repository at this point in the history
  • Loading branch information
rainbowdashlabs authored Aug 16, 2024
1 parent 84c3411 commit 78963a2
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 4 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ plugins {

publishData {
useEldoNexusRepos(false)
publishingVersion = "2.2.2"
publishingVersion = "2.2.4"
}

group = "de.chojo.sadu"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,20 @@
package de.chojo.sadu.queries.api.configuration;

import de.chojo.sadu.mapper.RowMapperRegistry;
import de.chojo.sadu.queries.api.configuration.context.QueryContext;
import de.chojo.sadu.queries.api.query.ParsedQuery;
import de.chojo.sadu.queries.configuration.ConnectedQueryConfigurationImpl;
import de.chojo.sadu.queries.configuration.QueryConfigurationBuilder;
import de.chojo.sadu.queries.api.configuration.context.QueryContext;
import org.intellij.lang.annotations.Language;

import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;

@SuppressWarnings("removal")
public interface QueryConfiguration extends de.chojo.sadu.queries.configuration.QueryConfiguration{
public interface QueryConfiguration extends de.chojo.sadu.queries.configuration.QueryConfiguration {
AtomicReference<QueryConfiguration> DEFAULT = new AtomicReference<>(null);

/**
Expand All @@ -39,6 +41,29 @@ static void setDefault(QueryConfiguration configuration) {
DEFAULT.set(configuration);
}

/**
* Returns a builder with the defaults being the settings of this config
*
* @param source Overrides the current data source
* @return new builder instance
*/
default QueryConfigurationBuilder edit(DataSource source) {
return builder(source)
.setAtomic(atomic())
.setExceptionHandler(exceptionHandler())
.setRowMapperRegistry(rowMapperRegistry())
.setThrowExceptions(throwExceptions());
}

/**
* Returns a builder with the defaults being the settings of this config
*
* @return new builder instance
*/
default QueryConfigurationBuilder edit() {
return edit(dataSource());
}

/**
* Creates a new QueryConfigurationBuilder instance with the given DataSource.
*
Expand Down Expand Up @@ -85,6 +110,13 @@ static QueryConfigurationBuilder builder(DataSource source) {
*/
DataSource dataSource();

/**
* Retrieves the exception handler
*
* @return exception handler
*/
Consumer<SQLException> exceptionHandler();

/**
* Executes a SQL query with the given SQL statement and format arguments.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.function.Consumer;

public class ConnectedQueryQueryConfigurationDelegate implements ConnectedQueryConfiguration {
private final ConnectedQueryConfigurationImpl configuration;
Expand Down Expand Up @@ -47,6 +48,11 @@ public DataSource dataSource() {
return configuration.dataSource();
}

@Override
public Consumer<SQLException> exceptionHandler() {
return configuration.exceptionHandler();
}

@Override
public RowMapperRegistry rowMapperRegistry() {
return configuration.rowMapperRegistry();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

import de.chojo.sadu.mapper.RowMapperRegistry;
import de.chojo.sadu.queries.api.configuration.ActiveQueryConfiguration;
import de.chojo.sadu.queries.api.query.ParsedQuery;
import de.chojo.sadu.queries.api.configuration.context.QueryContext;
import de.chojo.sadu.queries.api.query.ParsedQuery;
import org.intellij.lang.annotations.Language;

import javax.sql.DataSource;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ public DataSource dataSource() {
return dataSource;
}

@Override
public Consumer<SQLException> exceptionHandler() {
return exceptionHandler;
}

@Override
public ParsedQuery query(@Language("sql") String sql, Object... format) {
return Query.query(this, sql, format);
Expand Down

0 comments on commit 78963a2

Please sign in to comment.