Skip to content

Commit 065e27f

Browse files
committed
Polishing
Minor doc fixes. Add Javadoc, align license headers to comply with inlined Spring Framework code.
1 parent 2c2f4c0 commit 065e27f

12 files changed

+87
-55
lines changed

src/main/asciidoc/reference/r2dbc.adoc

+3-3
Original file line numberDiff line numberDiff line change
@@ -463,12 +463,12 @@ R2DBC uses database-native bind markers that depend on the actual database.
463463
If you are familiar with JDBC, then you're also familiar with `?` (question mark) bind markers.
464464
JDBC drivers translate question mark bind markers to database-native markers as part of statement execution.
465465
466-
Postgres uses `$1`, `$2` and so on, SQL Server uses named bind markers prefixed with `@` as their native bind markers.
467-
Spring Data R2DBC leverages `Dialect` implementations to expand named parameters to native bind markers at the time of query execution which gives you a certain degree of query portability across various database vendors
466+
Postgres uses indexed markers (`$1`, `$2`), SQL Server uses named bind markers prefixed with `@` as its native bind marker syntax.
467+
Spring Data R2DBC leverages `Dialect` implementations to expand named parameters to native bind markers at the time of query execution which gives you a certain degree of query portability across various database vendors.
468468
You can still use native bind markers if you prefer to do so.
469469
****
470470

471-
The query-preprocessor unrolls named `Collection` parameters to remove the need of dynamic query creation based on the number of arguments.
471+
The query-preprocessor unrolls named `Collection` parameters into a series of bind markers to remove the need of dynamic query creation based on the number of arguments.
472472
Nested object arrays are expanded to allow usage of e.g. select lists.
473473

474474
Consider the following query:

src/main/java/org/springframework/data/r2dbc/function/BindParameterSource.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
/**
2121
* Interface that defines common functionality for objects that can offer parameter values for named bind parameters,
22-
* serving as argument for {@link NamedParameterSupport} operations.
22+
* serving as argument for {@link NamedParameterExpander} operations.
2323
* <p>
2424
* This interface allows for the specification of the type in addition to parameter values. All parameter values and
2525
* types are identified by specifying the name of the parameter.
@@ -35,15 +35,15 @@ public interface BindParameterSource {
3535
* Determine whether there is a value for the specified named parameter.
3636
*
3737
* @param paramName the name of the parameter.
38-
* @return whether there is a value defined.
38+
* @return {@literal true} if there is a value defined; {@literal false} otherwise.
3939
*/
4040
boolean hasValue(String paramName);
4141

4242
/**
4343
* Return the parameter value for the requested named parameter.
4444
*
4545
* @param paramName the name of the parameter.
46-
* @return the value of the specified parameter.
46+
* @return the value of the specified parameter, can be {@literal null}.
4747
* @throws IllegalArgumentException if there is no value for the requested parameter.
4848
*/
4949
@Nullable

src/main/java/org/springframework/data/r2dbc/function/DatabaseClient.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,14 @@ interface Builder {
110110
Builder dataAccessStrategy(ReactiveDataAccessStrategy accessStrategy);
111111

112112
/**
113-
* Configures {@link NamedParameterSupport}.
113+
* Configures {@link NamedParameterExpander}.
114114
*
115-
* @param namedParameterSupport must not be {@literal null}.
115+
* @param namedParameters must not be {@literal null}.
116116
* @return {@code this} {@link Builder}.
117-
* @see NamedParameterSupport#enabled()
118-
* @see NamedParameterSupport#disabled()
117+
* @see NamedParameterExpander#enabled()
118+
* @see NamedParameterExpander#disabled()
119119
*/
120-
Builder namedParameters(NamedParameterSupport namedParameterSupport);
120+
Builder namedParameters(NamedParameterExpander namedParameters);
121121

122122
/**
123123
* Configures a {@link Consumer} to configure this builder.
@@ -136,10 +136,10 @@ interface Builder {
136136
/**
137137
* Contract for specifying a SQL call along with options leading to the exchange. The SQL string can contain either
138138
* native parameter bind markers (e.g. {@literal $1, $2} for Postgres, {@literal @P0, @P1} for SQL Server) or named
139-
* parameters (e.g. {@literal :foo, :bar}) when {@link NamedParameterSupport} is enabled.
139+
* parameters (e.g. {@literal :foo, :bar}) when {@link NamedParameterExpander} is enabled.
140140
*
141-
* @see NamedParameterSupport
142-
* @see DatabaseClient.Builder#namedParameters(NamedParameterSupport)
141+
* @see NamedParameterExpander
142+
* @see DatabaseClient.Builder#namedParameters(NamedParameterExpander)
143143
*/
144144
interface SqlSpec {
145145

src/main/java/org/springframework/data/r2dbc/function/DefaultDatabaseClient.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -74,18 +74,18 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor {
7474

7575
private final ReactiveDataAccessStrategy dataAccessStrategy;
7676

77-
private final NamedParameterSupport namedParameterSupport;
77+
private final NamedParameterExpander namedParameters;
7878

7979
private final DefaultDatabaseClientBuilder builder;
8080

8181
DefaultDatabaseClient(ConnectionFactory connector, R2dbcExceptionTranslator exceptionTranslator,
82-
ReactiveDataAccessStrategy dataAccessStrategy, NamedParameterSupport namedParameterSupport,
82+
ReactiveDataAccessStrategy dataAccessStrategy, NamedParameterExpander namedParameters,
8383
DefaultDatabaseClientBuilder builder) {
8484

8585
this.connector = connector;
8686
this.exceptionTranslator = exceptionTranslator;
8787
this.dataAccessStrategy = dataAccessStrategy;
88-
this.namedParameterSupport = namedParameterSupport;
88+
this.namedParameters = namedParameters;
8989
this.builder = builder;
9090
}
9191

@@ -326,7 +326,7 @@ <T> FetchSpec<T> exchange(String sql, BiFunction<Row, RowMetadata, T> mappingFun
326326
logger.debug("Executing SQL statement [" + sql + "]");
327327
}
328328

329-
BindableOperation operation = namedParameterSupport.expand(sql, dataAccessStrategy.getBindMarkersFactory(),
329+
BindableOperation operation = namedParameters.expand(sql, dataAccessStrategy.getBindMarkersFactory(),
330330
new MapBindParameterSource(byName));
331331

332332
Statement<?> statement = it.createStatement(operation.toQuery());

src/main/java/org/springframework/data/r2dbc/function/DefaultDatabaseClientBuilder.java

+39-11
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class DefaultDatabaseClientBuilder implements DatabaseClient.Builder {
3838
private @Nullable ConnectionFactory connectionFactory;
3939
private @Nullable R2dbcExceptionTranslator exceptionTranslator;
4040
private ReactiveDataAccessStrategy accessStrategy;
41-
private NamedParameterSupport namedParameterSupport;
41+
private NamedParameterExpander namedParameters;
4242

4343
DefaultDatabaseClientBuilder() {}
4444

@@ -49,9 +49,13 @@ class DefaultDatabaseClientBuilder implements DatabaseClient.Builder {
4949
this.connectionFactory = other.connectionFactory;
5050
this.exceptionTranslator = other.exceptionTranslator;
5151
this.accessStrategy = other.accessStrategy;
52-
this.namedParameterSupport = other.namedParameterSupport;
52+
this.namedParameters = other.namedParameters;
5353
}
5454

55+
/*
56+
* (non-Javadoc)
57+
* @see org.springframework.data.r2dbc.function.DatabaseClient.Builder#connectionFactory(io.r2dbc.spi.ConnectionFactory)
58+
*/
5559
@Override
5660
public Builder connectionFactory(ConnectionFactory factory) {
5761

@@ -61,6 +65,10 @@ public Builder connectionFactory(ConnectionFactory factory) {
6165
return this;
6266
}
6367

68+
/*
69+
* (non-Javadoc)
70+
* @see org.springframework.data.r2dbc.function.DatabaseClient.Builder#exceptionTranslator(org.springframework.data.r2dbc.support.R2dbcExceptionTranslator)
71+
*/
6472
@Override
6573
public Builder exceptionTranslator(R2dbcExceptionTranslator exceptionTranslator) {
6674

@@ -70,6 +78,10 @@ public Builder exceptionTranslator(R2dbcExceptionTranslator exceptionTranslator)
7078
return this;
7179
}
7280

81+
/*
82+
* (non-Javadoc)
83+
* @see org.springframework.data.r2dbc.function.DatabaseClient.Builder#dataAccessStrategy(org.springframework.data.r2dbc.function.ReactiveDataAccessStrategy)
84+
*/
7385
@Override
7486
public Builder dataAccessStrategy(ReactiveDataAccessStrategy accessStrategy) {
7587

@@ -79,15 +91,23 @@ public Builder dataAccessStrategy(ReactiveDataAccessStrategy accessStrategy) {
7991
return this;
8092
}
8193

94+
/*
95+
* (non-Javadoc)
96+
* @see org.springframework.data.r2dbc.function.DatabaseClient.Builder#namedParameters(org.springframework.data.r2dbc.function.NamedParameterExpander)
97+
*/
8298
@Override
83-
public Builder namedParameters(NamedParameterSupport namedParameterSupport) {
99+
public Builder namedParameters(NamedParameterExpander namedParameters) {
84100

85-
Assert.notNull(namedParameterSupport, "NamedParameterSupportAccessStrategy must not be null!");
101+
Assert.notNull(namedParameters, "NamedParameterExpander must not be null!");
86102

87-
this.namedParameterSupport = namedParameterSupport;
103+
this.namedParameters = namedParameters;
88104
return this;
89105
}
90106

107+
/*
108+
* (non-Javadoc)
109+
* @see org.springframework.data.r2dbc.function.DatabaseClient.Builder#build()
110+
*/
91111
@Override
92112
public DatabaseClient build() {
93113

@@ -108,27 +128,35 @@ public DatabaseClient build() {
108128
accessStrategy = new DefaultReactiveDataAccessStrategy(dialect);
109129
}
110130

111-
NamedParameterSupport namedParameterSupport = this.namedParameterSupport;
131+
NamedParameterExpander namedParameters = this.namedParameters;
112132

113-
if (namedParameterSupport == null) {
114-
namedParameterSupport = NamedParameterSupport.enabled();
133+
if (namedParameters == null) {
134+
namedParameters = NamedParameterExpander.enabled();
115135
}
116136

117-
return doBuild(this.connectionFactory, exceptionTranslator, accessStrategy, namedParameterSupport,
137+
return doBuild(this.connectionFactory, exceptionTranslator, accessStrategy, namedParameters,
118138
new DefaultDatabaseClientBuilder(this));
119139
}
120140

121141
protected DatabaseClient doBuild(ConnectionFactory connector, R2dbcExceptionTranslator exceptionTranslator,
122-
ReactiveDataAccessStrategy accessStrategy, NamedParameterSupport namedParameterSupport,
142+
ReactiveDataAccessStrategy accessStrategy, NamedParameterExpander namedParameters,
123143
DefaultDatabaseClientBuilder builder) {
124-
return new DefaultDatabaseClient(connector, exceptionTranslator, accessStrategy, namedParameterSupport, builder);
144+
return new DefaultDatabaseClient(connector, exceptionTranslator, accessStrategy, namedParameters, builder);
125145
}
126146

147+
/*
148+
* (non-Javadoc)
149+
* @see java.lang.Object#clone()
150+
*/
127151
@Override
128152
public DatabaseClient.Builder clone() {
129153
return new DefaultDatabaseClientBuilder(this);
130154
}
131155

156+
/*
157+
* (non-Javadoc)
158+
* @see org.springframework.data.r2dbc.function.DatabaseClient.Builder#apply(java.util.function.Consumer)
159+
*/
132160
@Override
133161
public DatabaseClient.Builder apply(Consumer<DatabaseClient.Builder> builderConsumer) {
134162
Assert.notNull(builderConsumer, "BuilderConsumer must not be null");

src/main/java/org/springframework/data/r2dbc/function/DefaultTransactionalDatabaseClient.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@
3939
class DefaultTransactionalDatabaseClient extends DefaultDatabaseClient implements TransactionalDatabaseClient {
4040

4141
DefaultTransactionalDatabaseClient(ConnectionFactory connector, R2dbcExceptionTranslator exceptionTranslator,
42-
ReactiveDataAccessStrategy dataAccessStrategy, NamedParameterSupport namedParameterSupport,
42+
ReactiveDataAccessStrategy dataAccessStrategy, NamedParameterExpander namedParameters,
4343
DefaultDatabaseClientBuilder builder) {
44-
super(connector, exceptionTranslator, dataAccessStrategy, namedParameterSupport, builder);
44+
super(connector, exceptionTranslator, dataAccessStrategy, namedParameters, builder);
4545
}
4646

4747
@Override

src/main/java/org/springframework/data/r2dbc/function/DefaultTransactionalDatabaseClientBuilder.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ public TransactionalDatabaseClient.Builder dataAccessStrategy(ReactiveDataAccess
7373
* @see org.springframework.data.r2dbc.function.DefaultDatabaseClientBuilder#dataAccessStrategy(org.springframework.data.r2dbc.function.NamedParameterSupport)
7474
*/
7575
@Override
76-
public TransactionalDatabaseClient.Builder namedParameters(NamedParameterSupport namedParameterSupport) {
77-
super.namedParameters(namedParameterSupport);
76+
public TransactionalDatabaseClient.Builder namedParameters(NamedParameterExpander namedParameters) {
77+
super.namedParameters(namedParameters);
7878
return this;
7979
}
8080

@@ -97,9 +97,9 @@ public TransactionalDatabaseClient build() {
9797

9898
@Override
9999
protected DatabaseClient doBuild(ConnectionFactory connector, R2dbcExceptionTranslator exceptionTranslator,
100-
ReactiveDataAccessStrategy accessStrategy, NamedParameterSupport namedParameterSupport,
100+
ReactiveDataAccessStrategy accessStrategy, NamedParameterExpander namedParameters,
101101
DefaultDatabaseClientBuilder builder) {
102-
return new DefaultTransactionalDatabaseClient(connector, exceptionTranslator, accessStrategy, namedParameterSupport,
102+
return new DefaultTransactionalDatabaseClient(connector, exceptionTranslator, accessStrategy, namedParameters,
103103
builder);
104104
}
105105
}

src/main/java/org/springframework/data/r2dbc/function/MapBindParameterSource.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
* {@link SettableValue}.
2727
* <p>
2828
* This class is intended for passing in a simple Map of parameter values to the methods of the
29-
* {@link NamedParameterSupport} class.
29+
* {@link NamedParameterExpander} class.
3030
*
3131
* @author Mark Paluch
3232
*/

src/main/java/org/springframework/data/r2dbc/function/NamedParameterSupport.java renamed to src/main/java/org/springframework/data/r2dbc/function/NamedParameterExpander.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
*
3535
* @author Mark Paluch
3636
*/
37-
public class NamedParameterSupport {
37+
public class NamedParameterExpander {
3838

3939
/** Default maximum number of entries for the SQL cache: 256. */
4040
public static final int DEFAULT_CACHE_LIMIT = 256;
@@ -52,24 +52,24 @@ protected boolean removeEldestEntry(Map.Entry<String, ParsedSql> eldest) {
5252
}
5353
};
5454

55-
private NamedParameterSupport() {}
55+
private NamedParameterExpander() {}
5656

5757
/**
58-
* Creates a disabled instance of {@link NamedParameterSupport}.
58+
* Creates a disabled instance of {@link NamedParameterExpander}.
5959
*
60-
* @return a disabled instance of {@link NamedParameterSupport}.
60+
* @return a disabled instance of {@link NamedParameterExpander}.
6161
*/
62-
public static NamedParameterSupport disabled() {
62+
public static NamedParameterExpander disabled() {
6363
return Disabled.INSTANCE;
6464
}
6565

6666
/**
67-
* Creates a new enabled instance of {@link NamedParameterSupport}.
67+
* Creates a new enabled instance of {@link NamedParameterExpander}.
6868
*
69-
* @return a new enabled instance of {@link NamedParameterSupport}.
69+
* @return a new enabled instance of {@link NamedParameterExpander}.
7070
*/
71-
public static NamedParameterSupport enabled() {
72-
return new NamedParameterSupport();
71+
public static NamedParameterExpander enabled() {
72+
return new NamedParameterExpander();
7373
}
7474

7575
/**
@@ -127,7 +127,7 @@ BindableOperation expand(String sql, BindMarkersFactory bindMarkersFactory, Bind
127127
/**
128128
* Disabled named parameter support.
129129
*/
130-
static class Disabled extends NamedParameterSupport {
130+
static class Disabled extends NamedParameterExpander {
131131

132132
private static final Disabled INSTANCE = new Disabled();
133133

src/main/java/org/springframework/data/r2dbc/function/NamedParameterUtils.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2019 the original author or authors.
2+
* Copyright 2002-2019 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -13,7 +13,6 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
1716
package org.springframework.data.r2dbc.function;
1817

1918
import io.r2dbc.spi.Statement;
@@ -39,7 +38,11 @@
3938
* <p>
4039
* Only intended for internal use within Spring's Data's R2DBC framework. Partially extracted from Spring's JDBC named
4140
* parameter support.
41+
* <p>
42+
* This is a subset of Spring Frameworks's {@code org.springframework.jdbc.core.namedparam.NamedParameterUtils}.
4243
*
44+
* @author Thomas Risberg
45+
* @author Juergen Hoeller
4346
* @author Mark Paluch
4447
*/
4548
abstract class NamedParameterUtils {

src/main/java/org/springframework/data/r2dbc/function/ParsedSql.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2019 the original author or authors.
2+
* Copyright 2002-2019 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -13,14 +13,15 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
1716
package org.springframework.data.r2dbc.function;
1817

1918
import java.util.ArrayList;
2019
import java.util.List;
2120

2221
/**
2322
* Holds information about a parsed SQL statement.
23+
* <p>
24+
* This is a copy of Spring Frameworks's {@code org.springframework.jdbc.core.namedparam.ParsedSql}.
2425
*
2526
* @author Thomas Risberg
2627
* @author Juergen Hoeller

src/main/java/org/springframework/data/r2dbc/function/TransactionalDatabaseClient.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -190,14 +190,14 @@ interface Builder extends DatabaseClient.Builder {
190190
Builder dataAccessStrategy(ReactiveDataAccessStrategy accessStrategy);
191191

192192
/**
193-
* Configures {@link NamedParameterSupport}.
193+
* Configures {@link NamedParameterExpander}.
194194
*
195-
* @param namedParameterSupport must not be {@literal null}.
195+
* @param namedParameters must not be {@literal null}.
196196
* @return {@code this} {@link Builder}.
197-
* @see NamedParameterSupport#enabled()
198-
* @see NamedParameterSupport#disabled()
197+
* @see NamedParameterExpander#enabled()
198+
* @see NamedParameterExpander#disabled()
199199
*/
200-
Builder namedParameters(NamedParameterSupport namedParameterSupport);
200+
Builder namedParameters(NamedParameterExpander namedParameters);
201201

202202
/**
203203
* Configures a {@link Consumer} to configure this builder.

0 commit comments

Comments
 (0)