Skip to content

Commit fa8ec2e

Browse files
committed
Remove code smell of using Optionals as parameters
1 parent dcb71e3 commit fa8ec2e

File tree

5 files changed

+17
-35
lines changed

5 files changed

+17
-35
lines changed

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.mybatis.dynamic.sql.insert.InsertSelectModel;
2727
import org.mybatis.dynamic.sql.render.RenderingStrategy;
2828
import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
29+
import org.mybatis.dynamic.sql.util.StringUtilities;
2930

3031
public class InsertSelectRenderer {
3132

@@ -42,9 +43,11 @@ public InsertSelectStatementProvider render() {
4243

4344
String statementStart = InsertRenderingUtilities.calculateInsertStatementStart(model.table());
4445
Optional<String> columnsPhrase = calculateColumnsPhrase();
45-
String selectStatementS = selectStatement.getSelectStatement();
46+
String renderedSelectStatement = selectStatement.getSelectStatement();
4647

47-
String insertStatement = statementStart + spaceBefore(columnsPhrase) + spaceBefore(selectStatementS);
48+
String insertStatement = statementStart
49+
+ columnsPhrase.map(StringUtilities::spaceBefore).orElse("") //$NON-NLS-1$
50+
+ spaceBefore(renderedSelectStatement);
4851

4952
return DefaultGeneralInsertStatementProvider.withInsertStatement(insertStatement)
5053
.withParameters(selectStatement.getParameters())

src/main/java/org/mybatis/dynamic/sql/select/join/JoinType.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,19 @@
1515
*/
1616
package org.mybatis.dynamic.sql.select.join;
1717

18-
import java.util.Optional;
19-
2018
public enum JoinType {
21-
INNER(),
22-
LEFT("left"), //$NON-NLS-1$
23-
RIGHT("right"), //$NON-NLS-1$
24-
FULL("full"); //$NON-NLS-1$
25-
26-
private final String shortType;
19+
INNER("join"), //$NON-NLS-1$
20+
LEFT("left join"), //$NON-NLS-1$
21+
RIGHT("right join"), //$NON-NLS-1$
22+
FULL("full join"); //$NON-NLS-1$
2723

28-
JoinType() {
29-
shortType = null;
30-
}
24+
private final String type;
3125

32-
JoinType(String shortType) {
33-
this.shortType = shortType;
26+
JoinType(String type) {
27+
this.type = type;
3428
}
3529

36-
public Optional<String> shortType() {
37-
return Optional.ofNullable(shortType);
30+
public String type() {
31+
return type;
3832
}
3933
}

src/main/java/org/mybatis/dynamic/sql/select/render/JoinRenderer.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package org.mybatis.dynamic.sql.select.render;
1717

18-
import static org.mybatis.dynamic.sql.util.StringUtilities.spaceAfter;
1918
import static org.mybatis.dynamic.sql.util.StringUtilities.spaceBefore;
2019

2120
import java.util.Objects;
@@ -52,8 +51,7 @@ public FragmentAndParameters render() {
5251
private FragmentAndParameters renderJoinSpecification(JoinSpecification joinSpecification) {
5352
FragmentAndParameters renderedTable = joinSpecification.table().accept(tableExpressionRenderer);
5453

55-
String fragment = spaceAfter(joinSpecification.joinType().shortType())
56-
+ "join" //$NON-NLS-1$
54+
String fragment = joinSpecification.joinType().type()
5755
+ spaceBefore(renderedTable.fragment())
5856
+ spaceBefore(renderConditions(joinSpecification));
5957

src/main/java/org/mybatis/dynamic/sql/select/render/QueryExpressionRenderer.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
*/
1616
package org.mybatis.dynamic.sql.select.render;
1717

18-
import static org.mybatis.dynamic.sql.util.StringUtilities.spaceAfter;
19-
2018
import java.util.Objects;
2119
import java.util.Optional;
2220
import java.util.concurrent.atomic.AtomicInteger;
@@ -34,6 +32,7 @@
3432
import org.mybatis.dynamic.sql.select.join.JoinModel;
3533
import org.mybatis.dynamic.sql.util.FragmentAndParameters;
3634
import org.mybatis.dynamic.sql.util.FragmentCollector;
35+
import org.mybatis.dynamic.sql.util.StringUtilities;
3736
import org.mybatis.dynamic.sql.where.WhereModel;
3837
import org.mybatis.dynamic.sql.where.render.WhereRenderer;
3938

@@ -135,7 +134,7 @@ private FragmentAndParameters toFragmentAndParameters(FragmentCollector fragment
135134
}
136135

137136
private FragmentAndParameters calculateQueryExpressionStart() {
138-
String start = spaceAfter(queryExpression.connector())
137+
String start = queryExpression.connector().map(StringUtilities::spaceAfter).orElse("") //$NON-NLS-1$
139138
+ "select " //$NON-NLS-1$
140139
+ (queryExpression.isDistinct() ? "distinct " : "") //$NON-NLS-1$ //$NON-NLS-2$
141140
+ calculateColumnList()

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,12 @@
1515
*/
1616
package org.mybatis.dynamic.sql.util;
1717

18-
import java.util.Optional;
19-
2018
public interface StringUtilities {
2119

22-
static String spaceAfter(Optional<String> in) {
23-
return in.map(StringUtilities::spaceAfter)
24-
.orElse(""); //$NON-NLS-1$
25-
}
26-
2720
static String spaceAfter(String in) {
2821
return in + " "; //$NON-NLS-1$
2922
}
3023

31-
static String spaceBefore(Optional<String> in) {
32-
return in.map(StringUtilities::spaceBefore)
33-
.orElse(""); //$NON-NLS-1$
34-
}
35-
3624
static String spaceBefore(String in) {
3725
return " " + in; //$NON-NLS-1$
3826
}

0 commit comments

Comments
 (0)