Skip to content

Commit ae0546b

Browse files
committed
TupleExpressions: move maybeWrap and renamed it.
1 parent df51936 commit ae0546b

File tree

5 files changed

+30
-15
lines changed

5 files changed

+30
-15
lines changed

spring-data-jdbc/src/main/java/org/springframework/data/jdbc/core/convert/SqlGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ private Condition getSubselectCondition(AggregatePath path,
197197
}
198198

199199
private Expression toExpression(Map<AggregatePath, Column> columnsMap) {
200-
return TupleExpression.maybeWrap(new ArrayList<>(columnsMap.values()));
200+
return Expressions.of(new ArrayList<>(columnsMap.values()));
201201
}
202202

203203
private BindMarker getBindMarker(SqlIdentifier columnName) {

spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/JdbcDeleteQueryCreator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ private void deleteRelations(List<Delete> deleteChain, RelationalPersistentEntit
140140

141141
List<Column> reverseColumns = aggregatePath.getTableInfo().backReferenceColumnInfos()
142142
.toList(ci -> table.column(ci.name()));
143-
Expression expression = TupleExpression.maybeWrap(reverseColumns);
143+
Expression expression = Expressions.of(reverseColumns);
144144

145145
Condition inCondition = Conditions.in(expression, parentSelect);
146146

spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/Expressions.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,17 @@
1515
*/
1616
package org.springframework.data.relational.core.sql;
1717

18+
import java.util.List;
19+
1820
/**
1921
* Factory for common {@link Expression}s.
2022
*
2123
* @author Mark Paluch
2224
* @author Jens Schauder
23-
* @since 1.1
2425
* @see SQL
2526
* @see Conditions
2627
* @see Functions
28+
* @since 1.1
2729
*/
2830
public abstract class Expressions {
2931

@@ -61,8 +63,29 @@ public static Expression cast(Expression expression, String targetType) {
6163
return Cast.create(expression, targetType);
6264
}
6365

66+
/**
67+
* Creates an {@link Expression} based on the provided list of {@link Column}s.
68+
* <p>
69+
* If the list contains only a single column, this method returns that column directly
70+
* as the resulting {@link Expression}. Otherwise, it creates and returns a
71+
* {@link TupleExpression} that represents multiple columns as a single expression.
72+
*
73+
* @param columns the list of {@link Column}s to include in the expression;
74+
* must not be {@literal null}.
75+
* @return an {@link Expression} corresponding to the input columns: either a single column or a {@link TupleExpression} for multiple columns.
76+
* @since 3.5
77+
*/
78+
public static Expression of(List<Column> columns) {
79+
80+
if (columns.size() == 1) {
81+
return columns.get(0);
82+
}
83+
return new TupleExpression(columns);
84+
}
85+
6486
// Utility constructor.
65-
private Expressions() {}
87+
private Expressions() {
88+
}
6689

6790
static public class SimpleExpression extends AbstractSegment implements Expression {
6891

spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/TupleExpression.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ private static Segment[] children(List<? extends Expression> expressions) {
3838
return expressions.toArray(new Segment[0]);
3939
}
4040

41-
private TupleExpression(List<? extends Expression> expressions) {
41+
TupleExpression(List<? extends Expression> expressions) {
4242

4343
super(children(expressions));
4444

@@ -53,14 +53,6 @@ public static TupleExpression create(List<? extends Expression> expressions) {
5353
return new TupleExpression(expressions);
5454
}
5555

56-
public static Expression maybeWrap(List<Column> columns) {
57-
58-
if (columns.size() == 1) {
59-
return columns.get(0);
60-
}
61-
return new TupleExpression(columns);
62-
}
63-
6456
@Override
6557
public String toString() {
6658
return "(" + expressions.stream().map(Expression::toString).collect(joining(", ")) + ")";

spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/TupleExpressionUnitTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ void singleExpressionDoesNotGetWrapped() {
3434

3535
Column testColumn = Column.create("name", Table.create("employee"));
3636

37-
Expression wrapped = TupleExpression.maybeWrap(List.of(testColumn));
37+
Expression wrapped = Expressions.of(List.of(testColumn));
3838

3939
assertThat(wrapped).isSameAs(testColumn);
4040
}
@@ -45,7 +45,7 @@ void multipleExpressionsDoGetWrapped() {
4545
Column testColumn1 = Column.create("first", Table.create("employee"));
4646
Column testColumn2 = Column.create("last", Table.create("employee"));
4747

48-
Expression wrapped = TupleExpression.maybeWrap(List.of(testColumn1, testColumn2));
48+
Expression wrapped = Expressions.of(List.of(testColumn1, testColumn2));
4949

5050
assertThat(wrapped).isInstanceOf(TupleExpression.class);
5151
}

0 commit comments

Comments
 (0)