Skip to content

Commit 78c1815

Browse files
committed
Move Map function to SQLColumn where it belongs
1 parent 8940143 commit 78c1815

File tree

6 files changed

+19
-15
lines changed

6 files changed

+19
-15
lines changed

src/main/java/org/mybatis/dynamic/sql/SqlColumn.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.sql.JDBCType;
1919
import java.util.Objects;
2020
import java.util.Optional;
21+
import java.util.function.Function;
2122

2223
import org.jetbrains.annotations.NotNull;
2324
import org.mybatis.dynamic.sql.render.RenderingContext;
@@ -173,6 +174,10 @@ public <S> SqlColumn<S> withJavaType(Class<S> javaType) {
173174
return b.withJavaType(javaType).build();
174175
}
175176

177+
public <R> R map(Function<SqlColumn<?>, R> mapper) {
178+
return mapper.apply(this);
179+
}
180+
176181
/**
177182
* This method helps us tell a bit of fiction to the Java compiler. Java, for better or worse,
178183
* does not carry generic type information through chained methods. We want to enable method

src/main/java/org/mybatis/dynamic/sql/insert/render/GeneralInsertValuePhraseVisitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ private Optional<FieldAndValueAndParameters> buildNullFragment(AbstractColumnMap
8585
}
8686

8787
private Optional<FieldAndValueAndParameters> buildFragment(AbstractColumnMapping mapping, Object value) {
88-
RenderedParameterInfo parameterInfo = mapping.mapColumn(renderingContext::calculateParameterInfo);
88+
RenderedParameterInfo parameterInfo = mapping.column().map(renderingContext::calculateParameterInfo);
8989

9090
return FieldAndValueAndParameters.withFieldName(mapping.columnName())
9191
.withValuePhrase(parameterInfo.renderedPlaceHolder())

src/main/java/org/mybatis/dynamic/sql/insert/render/MultiRowValuePhraseVisitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ public FieldAndValueAndParameters visit(StringConstantMapping mapping) {
5858
@Override
5959
public FieldAndValueAndParameters visit(PropertyMapping mapping) {
6060
return FieldAndValueAndParameters.withFieldName(mapping.columnName())
61-
.withValuePhrase(mapping.mapColumn(c -> calculateJdbcPlaceholder(c, mapping.property())))
61+
.withValuePhrase(mapping.column().map(c -> calculateJdbcPlaceholder(c, mapping.property())))
6262
.build();
6363
}
6464

6565
@Override
6666
public FieldAndValueAndParameters visit(RowMapping mapping) {
6767
return FieldAndValueAndParameters.withFieldName(mapping.columnName())
68-
.withValuePhrase(mapping.mapColumn(this::calculateJdbcPlaceholder))
68+
.withValuePhrase(mapping.column().map(this::calculateJdbcPlaceholder))
6969
.build();
7070
}
7171

src/main/java/org/mybatis/dynamic/sql/insert/render/ValuePhraseVisitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public Optional<FieldAndValueAndParameters> visit(StringConstantMapping mapping)
6060
@Override
6161
public Optional<FieldAndValueAndParameters> visit(PropertyMapping mapping) {
6262
return FieldAndValueAndParameters.withFieldName(mapping.columnName())
63-
.withValuePhrase(mapping.mapColumn(c -> calculateJdbcPlaceholder(c, mapping.property())))
63+
.withValuePhrase(mapping.column().map(c -> calculateJdbcPlaceholder(c, mapping.property())))
6464
.buildOptional();
6565
}
6666

@@ -76,7 +76,7 @@ public Optional<FieldAndValueAndParameters> visit(PropertyWhenPresentMapping map
7676
@Override
7777
public Optional<FieldAndValueAndParameters> visit(RowMapping mapping) {
7878
return FieldAndValueAndParameters.withFieldName(mapping.columnName())
79-
.withValuePhrase(mapping.mapColumn(this::calculateJdbcPlaceholder))
79+
.withValuePhrase(mapping.column().map(this::calculateJdbcPlaceholder))
8080
.buildOptional();
8181
}
8282

src/main/java/org/mybatis/dynamic/sql/update/render/SetPhraseVisitor.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@ public Optional<FragmentAndParameters> visit(NullMapping mapping) {
4949

5050
@Override
5151
public Optional<FragmentAndParameters> visit(ConstantMapping mapping) {
52-
String fragment = mapping.mapColumn(renderingContext::aliasedColumnName)
52+
String fragment = mapping.column().map(renderingContext::aliasedColumnName)
5353
+ " = " + mapping.constant(); //$NON-NLS-1$
5454
return FragmentAndParameters.withFragment(fragment)
5555
.buildOptional();
5656
}
5757

5858
@Override
5959
public Optional<FragmentAndParameters> visit(StringConstantMapping mapping) {
60-
String fragment = mapping.mapColumn(renderingContext::aliasedColumnName)
60+
String fragment = mapping.column().map(renderingContext::aliasedColumnName)
6161
+ " = " //$NON-NLS-1$
6262
+ StringUtilities.formatConstantForSQL(mapping.constant());
6363

@@ -85,7 +85,7 @@ public <T> Optional<FragmentAndParameters> visit(ValueWhenPresentMapping<T> mapp
8585
@Override
8686
public Optional<FragmentAndParameters> visit(SelectMapping mapping) {
8787
SelectStatementProvider selectStatement = mapping.selectModel().render(renderingContext);
88-
String fragment = mapping.mapColumn(renderingContext::aliasedColumnName)
88+
String fragment = mapping.column().map(renderingContext::aliasedColumnName)
8989
+ " = (" //$NON-NLS-1$
9090
+ selectStatement.getSelectStatement()
9191
+ ")"; //$NON-NLS-1$
@@ -99,7 +99,7 @@ public Optional<FragmentAndParameters> visit(SelectMapping mapping) {
9999
public Optional<FragmentAndParameters> visit(ColumnToColumnMapping mapping) {
100100
FragmentAndParameters renderedColumn = mapping.rightColumn().render(renderingContext);
101101

102-
String setPhrase = mapping.mapColumn(renderingContext::aliasedColumnName)
102+
String setPhrase = mapping.column().map(renderingContext::aliasedColumnName)
103103
+ " = " //$NON-NLS-1$
104104
+ renderedColumn.fragment();
105105

@@ -109,8 +109,8 @@ public Optional<FragmentAndParameters> visit(ColumnToColumnMapping mapping) {
109109
}
110110

111111
private <T> Optional<FragmentAndParameters> buildValueFragment(AbstractColumnMapping mapping, T value) {
112-
RenderedParameterInfo parameterInfo = mapping.mapColumn(renderingContext::calculateParameterInfo);
113-
String setPhrase = mapping.mapColumn(renderingContext::aliasedColumnName)
112+
RenderedParameterInfo parameterInfo = mapping.column().map(renderingContext::calculateParameterInfo);
113+
String setPhrase = mapping.column().map(renderingContext::aliasedColumnName)
114114
+ " = " //$NON-NLS-1$
115115
+ parameterInfo.renderedPlaceHolder();
116116

@@ -121,7 +121,7 @@ private <T> Optional<FragmentAndParameters> buildValueFragment(AbstractColumnMap
121121

122122
private Optional<FragmentAndParameters> buildNullFragment(AbstractColumnMapping mapping) {
123123
return FragmentAndParameters
124-
.withFragment(mapping.mapColumn(renderingContext::aliasedColumnName) + " = null") //$NON-NLS-1$
124+
.withFragment(mapping.column().map(renderingContext::aliasedColumnName) + " = null") //$NON-NLS-1$
125125
.buildOptional();
126126
}
127127
}

src/main/java/org/mybatis/dynamic/sql/util/AbstractColumnMapping.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package org.mybatis.dynamic.sql.util;
1717

1818
import java.util.Objects;
19-
import java.util.function.Function;
2019

2120
import org.mybatis.dynamic.sql.SqlColumn;
2221

@@ -31,8 +30,8 @@ public String columnName() {
3130
return column.name();
3231
}
3332

34-
public <R> R mapColumn(Function<SqlColumn<?>, R> mapper) {
35-
return mapper.apply(column);
33+
public SqlColumn<?> column() {
34+
return column;
3635
}
3736

3837
public abstract <R> R accept(ColumnMappingVisitor<R> visitor);

0 commit comments

Comments
 (0)