Skip to content

Commit e76d201

Browse files
authored
Merge pull request mybatis#98 from jeffgbutler/master
Misc. Optimizations
2 parents db21e70 + a4eed6c commit e76d201

File tree

8 files changed

+20
-40
lines changed

8 files changed

+20
-40
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ protected SqlTable(Supplier<Optional<String>> catalogSupplier, Supplier<Optional
5252
private String compose(Supplier<Optional<String>> catalogSupplier, Supplier<Optional<String>> schemaSupplier,
5353
String tableName) {
5454
return catalogSupplier.get().map(c -> compose(c, schemaSupplier, tableName))
55-
.orElse(compose(schemaSupplier, tableName));
55+
.orElseGet(() -> compose(schemaSupplier, tableName));
5656
}
5757

5858
private String compose(String catalog, Supplier<Optional<String>> schemaSupplier, String tableName) {
5959
return schemaSupplier.get().map(s -> composeCatalogSchemaAndAndTable(catalog, s, tableName))
60-
.orElse(composeCatalogAndTable(catalog, tableName));
60+
.orElseGet(() -> composeCatalogAndTable(catalog, tableName));
6161
}
6262

6363
private String compose(Supplier<Optional<String>> schemaSupplier, String tableName) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ private GuaranteedTableAliasCalculator(Map<SqlTable, String> aliases) {
3737
public Optional<String> aliasForColumn(SqlTable table) {
3838
return super.aliasForColumn(table)
3939
.map(Optional::of)
40-
.orElse(Optional.of(table.tableNameAtRuntime()));
40+
.orElseGet(() -> Optional.of(table.tableNameAtRuntime()));
4141
}
4242

4343
public static TableAliasCalculator of(Map<SqlTable, String> aliases) {

src/main/java/org/mybatis/dynamic/sql/select/LimitAndOffsetPagingModel.java

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

18+
import java.util.Objects;
1819
import java.util.Optional;
1920

2021
public class LimitAndOffsetPagingModel implements PagingModel {
@@ -23,12 +24,12 @@ public class LimitAndOffsetPagingModel implements PagingModel {
2324
private Long offset;
2425

2526
private LimitAndOffsetPagingModel(Builder builder) {
26-
this.limit = builder.limit;
27+
this.limit = Objects.requireNonNull(builder.limit);
2728
this.offset = builder.offset;
2829
}
2930

30-
public Optional<Long> limit() {
31-
return Optional.ofNullable(limit);
31+
public Long limit() {
32+
return limit;
3233
}
3334

3435
public Optional<Long> offset() {

src/main/java/org/mybatis/dynamic/sql/select/QueryExpressionModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ private QueryExpressionModel(Builder builder) {
5050
table = Objects.requireNonNull(builder.table);
5151
joinModel = builder.joinModel;
5252
tableAliasCalculator = joinModel().map(jm -> GuaranteedTableAliasCalculator.of(builder.tableAliases))
53-
.orElse(TableAliasCalculator.of(builder.tableAliases));
53+
.orElseGet(() -> TableAliasCalculator.of(builder.tableAliases));
5454
whereModel = builder.whereModel;
5555
groupByModel = builder.groupByModel;
5656
}

src/main/java/org/mybatis/dynamic/sql/select/SelectDSL.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,18 +140,15 @@ public R build() {
140140
}
141141

142142
public class OffsetFinisher implements Buildable<R> {
143-
private LimitAndOffsetPagingModel pagingModel;
144-
145143
public OffsetFinisher(long limit, long offset) {
146-
pagingModel = new LimitAndOffsetPagingModel.Builder()
144+
SelectDSL.this.pagingModel = new LimitAndOffsetPagingModel.Builder()
147145
.withLimit(limit)
148146
.withOffset(offset)
149147
.build();
150148
}
151149

152150
@Override
153151
public R build() {
154-
SelectDSL.this.pagingModel = pagingModel;
155152
return SelectDSL.this.build();
156153
}
157154
}
@@ -169,7 +166,7 @@ public FetchFirstFinisher fetchFirst(long fetchFirstRows) {
169166

170167
@Override
171168
public R build() {
172-
SelectDSL.this.pagingModel = new LimitAndOffsetPagingModel.Builder()
169+
SelectDSL.this.pagingModel = new FetchFirstPagingModel.Builder()
173170
.withOffset(offset)
174171
.build();
175172
return SelectDSL.this.build();
@@ -196,7 +193,6 @@ public RowsOnlyFinisher rowsOnly() {
196193
}
197194

198195
public class RowsOnlyFinisher implements Buildable<R> {
199-
200196
@Override
201197
public R build() {
202198
return SelectDSL.this.build();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ public FetchFirstPagingModelRenderer(RenderingStrategy renderingStrategy,
3636
public Optional<FragmentAndParameters> render() {
3737
return pagingModel.offset()
3838
.map(this::renderWithOffset)
39-
.orElse(renderFetchFirstRowsOnly());
39+
.orElseGet(this::renderFetchFirstRowsOnly);
4040
}
4141

4242
private Optional<FragmentAndParameters> renderWithOffset(Long offset) {
4343
return pagingModel.fetchFirstRows()
4444
.map(ffr -> renderOffsetAndFetchFirstRows(offset, ffr))
45-
.orElse(renderOffsetOnly(offset));
45+
.orElseGet(() -> renderOffsetOnly(offset));
4646
}
4747

4848
private Optional<FragmentAndParameters> renderFetchFirstRowsOnly() {

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

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -34,38 +34,21 @@ public LimitAndOffsetPagingModelRenderer(RenderingStrategy renderingStrategy,
3434
}
3535

3636
public Optional<FragmentAndParameters> render() {
37-
return pagingModel.limit()
38-
.map(this::renderWithLimit)
39-
.orElse(renderOffsetOnly());
40-
}
41-
42-
private Optional<FragmentAndParameters> renderWithLimit(Long limit) {
4337
return pagingModel.offset()
44-
.map(o -> renderLimitAndOffset(limit, o))
45-
.orElse(renderLimitOnly(limit));
46-
}
47-
48-
private Optional<FragmentAndParameters> renderOffsetOnly() {
49-
return pagingModel.offset().flatMap(this::renderOffsetOnly);
50-
}
51-
52-
private Optional<FragmentAndParameters> renderOffsetOnly(Long offset) {
53-
return FragmentAndParameters
54-
.withFragment("offset " + renderPlaceholder(OFFSET_PARAMETER)) //$NON-NLS-1$
55-
.withParameter(OFFSET_PARAMETER, offset)
56-
.buildOptional();
38+
.map(this::renderLimitAndOffset)
39+
.orElseGet(this::renderLimitOnly);
5740
}
58-
59-
private Optional<FragmentAndParameters> renderLimitOnly(Long limit) {
41+
42+
private Optional<FragmentAndParameters> renderLimitOnly() {
6043
return FragmentAndParameters.withFragment("limit " + renderPlaceholder(LIMIT_PARAMETER)) //$NON-NLS-1$
61-
.withParameter(LIMIT_PARAMETER, limit)
44+
.withParameter(LIMIT_PARAMETER, pagingModel.limit())
6245
.buildOptional();
6346
}
6447

65-
private Optional<FragmentAndParameters> renderLimitAndOffset(Long limit, Long offset) {
48+
private Optional<FragmentAndParameters> renderLimitAndOffset(Long offset) {
6649
return FragmentAndParameters.withFragment("limit " + renderPlaceholder(LIMIT_PARAMETER) //$NON-NLS-1$
6750
+ " offset " + renderPlaceholder(OFFSET_PARAMETER)) //$NON-NLS-1$
68-
.withParameter(LIMIT_PARAMETER, limit)
51+
.withParameter(LIMIT_PARAMETER, pagingModel.limit())
6952
.withParameter(OFFSET_PARAMETER, offset)
7053
.buildOptional();
7154
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class SelectRenderer {
3838
private SelectRenderer(Builder builder) {
3939
selectModel = Objects.requireNonNull(builder.selectModel);
4040
renderingStrategy = Objects.requireNonNull(builder.renderingStrategy);
41-
sequence = builder.sequence().orElse(new AtomicInteger(1));
41+
sequence = builder.sequence().orElseGet(() -> new AtomicInteger(1));
4242
}
4343

4444
public SelectStatementProvider render() {

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