Skip to content

Commit 3b25fc2

Browse files
committed
Use a builder per coding standards
1 parent a76dbd7 commit 3b25fc2

File tree

2 files changed

+30
-7
lines changed

2 files changed

+30
-7
lines changed

src/main/java/org/mybatis/dynamic/sql/render/TableAliasCalculatorWithParent.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ public class TableAliasCalculatorWithParent implements TableAliasCalculator {
2424
private final TableAliasCalculator parent;
2525
private final TableAliasCalculator child;
2626

27-
public TableAliasCalculatorWithParent(TableAliasCalculator parent, TableAliasCalculator child) {
28-
this.parent = Objects.requireNonNull(parent);
29-
this.child = Objects.requireNonNull(child);
27+
private TableAliasCalculatorWithParent(Builder builder) {
28+
parent = Objects.requireNonNull(builder.parent);
29+
child = Objects.requireNonNull(builder.child);
3030
}
3131

3232
@Override
@@ -46,4 +46,23 @@ public Optional<String> aliasForTable(SqlTable table) {
4646
}
4747
return parent.aliasForTable(table);
4848
}
49+
50+
public static class Builder {
51+
private TableAliasCalculator parent;
52+
private TableAliasCalculator child;
53+
54+
public Builder withParent(TableAliasCalculator parent) {
55+
this.parent = parent;
56+
return this;
57+
}
58+
59+
public Builder withChild(TableAliasCalculator child) {
60+
this.child = child;
61+
return this;
62+
}
63+
64+
public TableAliasCalculatorWithParent build() {
65+
return new TableAliasCalculatorWithParent(this);
66+
}
67+
}
4968
}

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,10 @@ private QueryExpressionRenderer(Builder builder) {
5959
}
6060

6161
/**
62-
* This function calculates a table alias calculator to use in the current context. In general,
63-
* there are two possibilities: this could be a renderer for a regular select statement, or it
64-
* could be a renderer for a select statement in an "exists" condition.
62+
* This function calculates a table alias calculator to use in the current context. There are several
63+
* possibilities: this could be a renderer for a regular select statement, or it could be a renderer for a table
64+
* expression in a join, or a column to sub query where condition, or it could be a renderer for a select
65+
* statement in an "exists" condition.
6566
*
6667
* <p>In the case of "exists" conditions, we will have a parent table alias calculator. We want to give visibility
6768
* to the aliases in the outer select statement to this renderer so columns in aliased tables can be used in exists
@@ -91,7 +92,10 @@ private TableAliasCalculator calculateTableAliasCalculator(QueryExpressionModel
9192
if (parentTableAliasCalculator == null) {
9293
return baseTableAliasCalculator;
9394
} else {
94-
return new TableAliasCalculatorWithParent(parentTableAliasCalculator, baseTableAliasCalculator);
95+
return new TableAliasCalculatorWithParent.Builder()
96+
.withParent(parentTableAliasCalculator)
97+
.withChild(baseTableAliasCalculator)
98+
.build();
9599
}
96100
}
97101

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy