#23 - Address review comments.

Original pull request: #47.
This commit is contained in:
Mark Paluch
2019-01-11 10:50:59 +01:00
parent 29f1edce0e
commit 3d1041c0c8
9 changed files with 37 additions and 35 deletions

View File

@@ -112,12 +112,12 @@ public interface DatabaseClient {
/**
* Configures {@link NamedParameterExpander}.
*
* @param namedParameters must not be {@literal null}.
* @param expander must not be {@literal null}.
* @return {@code this} {@link Builder}.
* @see NamedParameterExpander#enabled()
* @see NamedParameterExpander#disabled()
*/
Builder namedParameters(NamedParameterExpander namedParameters);
Builder namedParameters(NamedParameterExpander expander);
/**
* Configures a {@link Consumer} to configure this builder.

View File

@@ -254,14 +254,11 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor {
private static void doBind(Statement<?> statement, Map<String, SettableValue> byName,
Map<Integer, SettableValue> byIndex) {
byIndex.forEach((i, o) -> {
bindByIndex(statement, byIndex);
bindByName(statement, byName);
}
if (o.getValue() != null) {
statement.bind(i.intValue(), o.getValue());
} else {
statement.bindNull(i.intValue(), o.getType());
}
});
private static void bindByName(Statement<?> statement, Map<String, SettableValue> byName) {
byName.forEach((name, o) -> {
@@ -273,6 +270,18 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor {
});
}
private static void bindByIndex(Statement<?> statement, Map<Integer, SettableValue> byIndex) {
byIndex.forEach((i, o) -> {
if (o.getValue() != null) {
statement.bind(i.intValue(), o.getValue());
} else {
statement.bindNull(i.intValue(), o.getType());
}
});
}
/**
* Default {@link DatabaseClient.SqlSpec} implementation.
*/
@@ -340,7 +349,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor {
}
});
doBind(statement, Collections.emptyMap(), byIndex);
bindByIndex(statement, byIndex);
return statement;
};

View File

@@ -96,11 +96,11 @@ class DefaultDatabaseClientBuilder implements DatabaseClient.Builder {
* @see org.springframework.data.r2dbc.function.DatabaseClient.Builder#namedParameters(org.springframework.data.r2dbc.function.NamedParameterExpander)
*/
@Override
public Builder namedParameters(NamedParameterExpander namedParameters) {
public Builder namedParameters(NamedParameterExpander expander) {
Assert.notNull(namedParameters, "NamedParameterExpander must not be null!");
Assert.notNull(expander, "NamedParameterExpander must not be null!");
this.namedParameters = namedParameters;
this.namedParameters = expander;
return this;
}

View File

@@ -73,8 +73,8 @@ class DefaultTransactionalDatabaseClientBuilder extends DefaultDatabaseClientBui
* @see org.springframework.data.r2dbc.function.DefaultDatabaseClientBuilder#dataAccessStrategy(org.springframework.data.r2dbc.function.NamedParameterSupport)
*/
@Override
public TransactionalDatabaseClient.Builder namedParameters(NamedParameterExpander namedParameters) {
super.namedParameters(namedParameters);
public TransactionalDatabaseClient.Builder namedParameters(NamedParameterExpander expander) {
super.namedParameters(expander);
return this;
}

View File

@@ -162,16 +162,6 @@ abstract class NamedParameterUtils {
continue;
}
}
if (c == '?') {
int j = i + 1;
if (j < statement.length && (statement[j] == '?' || statement[j] == '|' || statement[j] == '&')) {
// Postgres-style "??", "?|", "?&" operator should be skipped
i = i + 2;
continue;
}
unnamedParameterCount++;
totalParameterCount++;
}
}
i++;
}

View File

@@ -192,12 +192,12 @@ public interface TransactionalDatabaseClient extends DatabaseClient {
/**
* Configures {@link NamedParameterExpander}.
*
* @param namedParameters must not be {@literal null}.
* @param expander must not be {@literal null}.
* @return {@code this} {@link Builder}.
* @see NamedParameterExpander#enabled()
* @see NamedParameterExpander#disabled()
*/
Builder namedParameters(NamedParameterExpander namedParameters);
Builder namedParameters(NamedParameterExpander expander);
/**
* Configures a {@link Consumer} to configure this builder.