Skip to content

Commit aae39d0

Browse files
remove Params.Holder
1 parent 7bb5ab0 commit aae39d0

File tree

3 files changed

+46
-37
lines changed

3 files changed

+46
-37
lines changed

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

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.github.vertical_blank.sqlformatter.core.AbstractFormatter;
44
import com.github.vertical_blank.sqlformatter.core.DialectConfig;
55
import com.github.vertical_blank.sqlformatter.core.FormatConfig;
6-
import com.github.vertical_blank.sqlformatter.core.Params;
76
import com.github.vertical_blank.sqlformatter.languages.*;
87
import java.util.List;
98
import java.util.Map;
@@ -81,21 +80,19 @@ public String format(String query, FormatConfig cfg) {
8180
}
8281

8382
public String format(String query, String indent, List<?> params) {
84-
return format(
85-
query, FormatConfig.builder().indent(indent).params(new Params(params)).build());
83+
return format(query, FormatConfig.builder().indent(indent).params(params).build());
8684
}
8785

8886
public String format(String query, List<?> params) {
89-
return format(query, FormatConfig.builder().params(new Params(params)).build());
87+
return format(query, FormatConfig.builder().params(params).build());
9088
}
9189

9290
public String format(String query, String indent, Map<String, ?> params) {
93-
return format(
94-
query, FormatConfig.builder().indent(indent).params(new Params(params)).build());
91+
return format(query, FormatConfig.builder().indent(indent).params(params).build());
9592
}
9693

9794
public String format(String query, Map<String, ?> params) {
98-
return format(query, FormatConfig.builder().params(new Params(params)).build());
95+
return format(query, FormatConfig.builder().params(params).build());
9996
}
10097

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

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,15 @@ public FormatConfigBuilder params(Params params) {
7979
* @return This
8080
*/
8181
public FormatConfigBuilder params(Map<String, ?> params) {
82-
return params(new Params(params));
82+
return params(Params.of(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 params(new Params(params));
90+
return params(Params.of(params));
9191
}
9292

9393
/**

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

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,53 +6,47 @@
66
import java.util.Queue;
77

88
/** Handles placeholder replacement with given params. */
9-
public class Params {
9+
public interface Params {
1010

11-
public static Params EMPTY = new Params();
11+
public static final Params EMPTY = new Empty();
1212

13-
private Holder params;
13+
boolean isEmpty();
14+
15+
Object get();
16+
17+
Object getByName(String key);
1418

1519
/** @param params query param */
16-
public Params(Map<String, ?> params) {
17-
this.params = new NamedParamHolder(params);
20+
public static Params of(Map<String, ?> params) {
21+
return new NamedParams(params);
1822
}
1923

2024
/** @param params query param */
21-
public Params(List<?> params) {
22-
this.params = new IndexedParamHolder(params);
25+
public static Params of(List<?> params) {
26+
return new IndexedParams(params);
2327
}
2428

25-
private Params() {}
26-
2729
/**
2830
* Returns param value that matches given placeholder with param key.
2931
*
3032
* @param token token.key Placeholder key token.value Placeholder value
3133
* @return param or token.value when params are missing
3234
*/
33-
Object get(Token token) {
34-
if (this.params == null || this.params.isEmpty()) {
35+
default Object get(Token token) {
36+
if (this.isEmpty()) {
3537
return token.value;
3638
}
3739
if (!(token.key == null || token.key.isEmpty())) {
38-
return this.params.getByName(token.key);
40+
return this.getByName(token.key);
3941
} else {
40-
return params.get();
42+
return this.get();
4143
}
4244
}
4345

44-
private interface Holder {
45-
boolean isEmpty();
46-
47-
Object get();
48-
49-
Object getByName(String key);
50-
}
51-
52-
private static class NamedParamHolder implements Holder {
46+
public static class NamedParams implements Params {
5347
private final Map<String, ?> params;
5448

55-
NamedParamHolder(Map<String, ?> params) {
49+
NamedParams(Map<String, ?> params) {
5650
this.params = params;
5751
}
5852

@@ -76,10 +70,10 @@ public String toString() {
7670
}
7771
}
7872

79-
private static class IndexedParamHolder implements Holder {
73+
public static class IndexedParams implements Params {
8074
private final Queue<?> params;
8175

82-
IndexedParamHolder(List<?> params) {
76+
IndexedParams(List<?> params) {
8377
this.params = new PriorityQueue<>(params);
8478
}
8579

@@ -103,8 +97,26 @@ public String toString() {
10397
}
10498
}
10599

106-
@Override
107-
public String toString() {
108-
return String.valueOf(this.params);
100+
public static class Empty implements Params {
101+
Empty() {}
102+
103+
public boolean isEmpty() {
104+
return true;
105+
}
106+
107+
@Override
108+
public Object get() {
109+
return null;
110+
}
111+
112+
@Override
113+
public Object getByName(String key) {
114+
return null;
115+
}
116+
117+
@Override
118+
public String toString() {
119+
return "[]";
120+
}
109121
}
110122
}

0 commit comments

Comments
 (0)