Skip to content

Commit aaea69d

Browse files
refactor params
1 parent 8bd665c commit aaea69d

File tree

4 files changed

+50
-53
lines changed

4 files changed

+50
-53
lines changed

src/main/java/com/github/vertical_blank/sqlformatter/SqlFormatter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,20 +82,20 @@ public String format(String query, FormatConfig cfg) {
8282

8383
public String format(String query, String indent, List<?> params) {
8484
return format(
85-
query, FormatConfig.builder().indent(indent).params(Params.Holder.of(params)).build());
85+
query, FormatConfig.builder().indent(indent).params(new Params(params)).build());
8686
}
8787

8888
public String format(String query, List<?> params) {
89-
return format(query, FormatConfig.builder().params(Params.Holder.of(params)).build());
89+
return format(query, FormatConfig.builder().params(new Params(params)).build());
9090
}
9191

9292
public String format(String query, String indent, Map<String, ?> params) {
9393
return format(
94-
query, FormatConfig.builder().indent(indent).params(Params.Holder.of(params)).build());
94+
query, FormatConfig.builder().indent(indent).params(new Params(params)).build());
9595
}
9696

9797
public String format(String query, Map<String, ?> params) {
98-
return format(query, FormatConfig.builder().params(Params.Holder.of(params)).build());
98+
return format(query, FormatConfig.builder().params(new Params(params)).build());
9999
}
100100

101101
public String format(String query, String indent) {

src/main/java/com/github/vertical_blank/sqlformatter/core/AbstractFormatter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public AbstractFormatter(FormatConfig cfg) {
2121
this.cfg = cfg;
2222
this.indentation = new Indentation(cfg.indent);
2323
this.inlineBlock = new InlineBlock(cfg.maxColumnLength);
24-
this.params = new Params(cfg.params);
24+
this.params = cfg.params;
2525
this.previousReservedToken = null;
2626
this.index = 0;
2727
}

src/main/java/com/github/vertical_blank/sqlformatter/core/FormatConfig.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ public class FormatConfig {
1111

1212
public final String indent;
1313
public final int maxColumnLength;
14-
public final Params.Holder params;
14+
public final Params params;
1515
public final boolean uppercase;
1616
public final Integer linesBetweenQueries;
1717

1818
FormatConfig(
1919
String indent,
2020
int maxColumnLength,
21-
Params.Holder params,
21+
Params params,
2222
boolean uppercase,
2323
Integer linesBetweenQueries) {
2424
this.indent = indent;
2525
this.maxColumnLength = maxColumnLength;
26-
this.params = params;
26+
this.params = params == null ? Params.EMPTY : params;
2727
this.uppercase = uppercase;
2828
this.linesBetweenQueries = linesBetweenQueries;
2929
}
@@ -41,7 +41,7 @@ public static FormatConfigBuilder builder() {
4141
public static class FormatConfigBuilder {
4242
private String indent = DEFAULT_INDENT;
4343
private int maxColumnLength = DEFAULT_COLUMN_MAX_LENGTH;
44-
private Params.Holder params;
44+
private Params params;
4545
private boolean uppercase;
4646
private Integer linesBetweenQueries;
4747

@@ -69,7 +69,7 @@ public FormatConfigBuilder maxColumnLength(int maxColumnLength) {
6969
* @param params Collection of params for placeholder replacement
7070
* @return This
7171
*/
72-
public FormatConfigBuilder params(Params.Holder params) {
72+
public FormatConfigBuilder params(Params params) {
7373
this.params = params;
7474
return this;
7575
}
@@ -79,15 +79,15 @@ public FormatConfigBuilder params(Params.Holder params) {
7979
* @return This
8080
*/
8181
public FormatConfigBuilder params(Map<String, ?> params) {
82-
return this.params(Params.Holder.of(params));
82+
return params(new Params(params));
8383
}
8484

8585
/**
8686
* @param params Collection of params for placeholder replacement
8787
* @return This
8888
*/
8989
public FormatConfigBuilder params(List<?> params) {
90-
return this.params(Params.Holder.of(params));
90+
return params(new Params(params));
9191
}
9292

9393
/**

src/main/java/com/github/vertical_blank/sqlformatter/core/Params.java

Lines changed: 38 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,40 @@
88
/** Handles placeholder replacement with given params. */
99
public class Params {
1010

11-
public interface Holder {
11+
public static Params EMPTY = new Params();
12+
13+
private Holder params;
14+
15+
/** @param params query param */
16+
public Params(Map<String, ?> params) {
17+
this.params = new NamedParamHolder(params);
18+
}
19+
20+
/** @param params query param */
21+
public Params(List<?> params) {
22+
this.params = new IndexedParamHolder(params);
23+
}
24+
25+
private Params() {}
26+
27+
/**
28+
* Returns param value that matches given placeholder with param key.
29+
*
30+
* @param token token.key Placeholder key token.value Placeholder value
31+
* @return param or token.value when params are missing
32+
*/
33+
Object get(Token token) {
34+
if (this.params == null || this.params.isEmpty()) {
35+
return token.value;
36+
}
37+
if (!(token.key == null || token.key.isEmpty())) {
38+
return this.params.getByName(token.key);
39+
} else {
40+
return params.get();
41+
}
42+
}
43+
44+
private interface Holder {
1245
boolean isEmpty();
1346

1447
Object get();
@@ -32,8 +65,8 @@ static Holder of(List<?> params) {
3265
}
3366
}
3467

35-
public static class NamedParamHolder implements Holder {
36-
private Map<String, ?> params;
68+
private static class NamedParamHolder implements Holder {
69+
private final Map<String, ?> params;
3770

3871
NamedParamHolder(Map<String, ?> params) {
3972
this.params = params;
@@ -59,8 +92,8 @@ public String toString() {
5992
}
6093
}
6194

62-
public static class IndexedParamHolder implements Holder {
63-
private Queue<?> params;
95+
private static class IndexedParamHolder implements Holder {
96+
private final Queue<?> params;
6497

6598
IndexedParamHolder(List<?> params) {
6699
this.params = new PriorityQueue<>(params);
@@ -86,42 +119,6 @@ public String toString() {
86119
}
87120
}
88121

89-
private Holder params;
90-
// private int index;
91-
92-
/** @param params query param */
93-
public Params(Map<String, ?> params) {
94-
this.params = new NamedParamHolder(params);
95-
}
96-
97-
/** @param params query param */
98-
public Params(List<?> params) {
99-
this.params = new IndexedParamHolder(params);
100-
// this.index = 0;
101-
}
102-
103-
/** @param holder query param holder */
104-
public Params(Holder holder) {
105-
this.params = holder;
106-
}
107-
108-
/**
109-
* Returns param value that matches given placeholder with param key.
110-
*
111-
* @param token token.key Placeholder key token.value Placeholder value
112-
* @return param or token.value when params are missing
113-
*/
114-
Object get(Token token) {
115-
if (this.params == null || this.params.isEmpty()) {
116-
return token.value;
117-
}
118-
if (!(token.key == null || token.key.isEmpty())) {
119-
return this.params.getByName(token.key);
120-
} else {
121-
return params.get();
122-
}
123-
}
124-
125122
@Override
126123
public String toString() {
127124
return String.valueOf(this.params);

0 commit comments

Comments
 (0)