Skip to content

Commit 9201cd4

Browse files
authored
Merge pull request #716 from jeffgbutler/if-mitigation
Various Refactorings
2 parents 044e521 + 442da70 commit 9201cd4

40 files changed

+233
-258
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ private SqlColumn(Builder<T> builder) {
4646
alias = builder.alias;
4747
typeHandler = builder.typeHandler;
4848
renderingStrategy = builder.renderingStrategy;
49-
parameterTypeConverter = builder.parameterTypeConverter;
49+
parameterTypeConverter = Objects.requireNonNull(builder.parameterTypeConverter);
5050
tableQualifier = builder.tableQualifier;
5151
javaType = builder.javaType;
5252
}
@@ -81,7 +81,7 @@ public Optional<Class<T>> javaType() {
8181

8282
@Override
8383
public Object convertParameterType(T value) {
84-
return parameterTypeConverter == null ? value : parameterTypeConverter.convert(value);
84+
return parameterTypeConverter.convert(value);
8585
}
8686

8787
@Override
@@ -110,7 +110,7 @@ public SqlColumn<T> qualifiedWith(String tableQualifier) {
110110
}
111111

112112
/**
113-
* Set an alias with a camel cased string based on the column name. The can be useful for queries using
113+
* Set an alias with a camel cased string based on the column name. This can be useful for queries using
114114
* the {@link org.mybatis.dynamic.sql.util.mybatis3.CommonSelectMapper} where the columns are placed into
115115
* a map based on the column name returned from the database.
116116
*
@@ -218,7 +218,7 @@ public static class Builder<T> {
218218
protected String alias;
219219
protected String typeHandler;
220220
protected RenderingStrategy renderingStrategy;
221-
protected ParameterTypeConverter<T, ?> parameterTypeConverter;
221+
protected ParameterTypeConverter<T, ?> parameterTypeConverter = v -> v;
222222
protected String tableQualifier;
223223
protected Class<T> javaType;
224224

src/main/java/org/mybatis/dynamic/sql/common/AbstractBooleanExpressionDSL.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@
2828
import org.mybatis.dynamic.sql.ExistsPredicate;
2929
import org.mybatis.dynamic.sql.SqlCriterion;
3030
import org.mybatis.dynamic.sql.VisitableCondition;
31-
import org.mybatis.dynamic.sql.exception.InvalidSqlException;
32-
import org.mybatis.dynamic.sql.util.Messages;
31+
import org.mybatis.dynamic.sql.util.Validator;
3332

3433
public abstract class AbstractBooleanExpressionDSL<T extends AbstractBooleanExpressionDSL<T>> {
3534
private SqlCriterion initialCriterion; // WARNING - may be null!
@@ -146,10 +145,7 @@ private void addSubCriteria(String connector, List<AndOrCriteriaGroup> criteria)
146145
}
147146

148147
protected void setInitialCriterion(SqlCriterion initialCriterion, StatementType statementType) {
149-
if (this.initialCriterion != null) {
150-
throw new InvalidSqlException(Messages.getString(statementType.messageNumber())); //$NON-NLS-1$
151-
}
152-
148+
Validator.assertTrue(this.initialCriterion == null, statementType.messageNumber());
153149
this.initialCriterion = initialCriterion;
154150
}
155151

src/main/java/org/mybatis/dynamic/sql/common/OrderByModel.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,14 @@
2323
import java.util.stream.Stream;
2424

2525
import org.mybatis.dynamic.sql.SortSpecification;
26-
import org.mybatis.dynamic.sql.exception.InvalidSqlException;
27-
import org.mybatis.dynamic.sql.util.Messages;
26+
import org.mybatis.dynamic.sql.util.Validator;
2827

2928
public class OrderByModel {
3029
private final List<SortSpecification> columns = new ArrayList<>();
3130

3231
private OrderByModel(Collection<? extends SortSpecification> columns) {
3332
Objects.requireNonNull(columns);
34-
if (columns.isEmpty()) {
35-
throw new InvalidSqlException(Messages.getString("ERROR.12")); //$NON-NLS-1$
36-
}
33+
Validator.assertNotEmpty(columns, "ERROR.12"); //$NON-NLS-1$
3734
this.columns.addAll(columns);
3835
}
3936

src/main/java/org/mybatis/dynamic/sql/delete/DeleteDSL.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,14 @@ public DeleteDSL<R> orderBy(Collection<? extends SortSpecification> columns) {
7878
@NotNull
7979
@Override
8080
public R build() {
81-
DeleteModel.Builder deleteModelBuilder = DeleteModel.withTable(table)
81+
DeleteModel deleteModel = DeleteModel.withTable(table)
8282
.withTableAlias(tableAlias)
8383
.withLimit(limit)
84-
.withOrderByModel(orderByModel);
85-
if (whereBuilder != null) {
86-
deleteModelBuilder.withWhereModel(whereBuilder.buildWhereModel());
87-
}
84+
.withOrderByModel(orderByModel)
85+
.withWhereModel(whereBuilder == null ? null : whereBuilder.buildWhereModel())
86+
.build();
8887

89-
return adapterFunction.apply(deleteModelBuilder.build());
88+
return adapterFunction.apply(deleteModel);
9089
}
9190

9291
@Override

src/main/java/org/mybatis/dynamic/sql/insert/BatchInsertModel.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,17 @@
1818
import java.util.Collection;
1919

2020
import org.jetbrains.annotations.NotNull;
21-
import org.mybatis.dynamic.sql.exception.InvalidSqlException;
2221
import org.mybatis.dynamic.sql.insert.render.BatchInsert;
2322
import org.mybatis.dynamic.sql.insert.render.BatchInsertRenderer;
2423
import org.mybatis.dynamic.sql.render.RenderingStrategy;
25-
import org.mybatis.dynamic.sql.util.Messages;
24+
import org.mybatis.dynamic.sql.util.Validator;
2625

2726
public class BatchInsertModel<T> extends AbstractMultiRowInsertModel<T> {
2827

2928
private BatchInsertModel(Builder<T> builder) {
3029
super(builder);
31-
if (records().isEmpty()) {
32-
throw new InvalidSqlException(Messages.getString("ERROR.19")); //$NON-NLS-1$
33-
}
34-
if (columnMappings.isEmpty()) {
35-
throw new InvalidSqlException(Messages.getString("ERROR.5")); //$NON-NLS-1$
36-
}
30+
Validator.assertNotEmpty(records(), "ERROR.19"); //$NON-NLS-1$
31+
Validator.assertNotEmpty(columnMappings, "ERROR.5"); //$NON-NLS-1$
3732
}
3833

3934
@NotNull

src/main/java/org/mybatis/dynamic/sql/insert/GeneralInsertModel.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@
2323

2424
import org.jetbrains.annotations.NotNull;
2525
import org.mybatis.dynamic.sql.SqlTable;
26-
import org.mybatis.dynamic.sql.exception.InvalidSqlException;
2726
import org.mybatis.dynamic.sql.insert.render.GeneralInsertRenderer;
2827
import org.mybatis.dynamic.sql.insert.render.GeneralInsertStatementProvider;
2928
import org.mybatis.dynamic.sql.render.RenderingStrategy;
3029
import org.mybatis.dynamic.sql.util.AbstractColumnMapping;
31-
import org.mybatis.dynamic.sql.util.Messages;
30+
import org.mybatis.dynamic.sql.util.Validator;
3231

3332
public class GeneralInsertModel {
3433

@@ -37,9 +36,7 @@ public class GeneralInsertModel {
3736

3837
private GeneralInsertModel(Builder builder) {
3938
table = Objects.requireNonNull(builder.table);
40-
if (builder.insertMappings.isEmpty()) {
41-
throw new InvalidSqlException(Messages.getString("ERROR.6")); //$NON-NLS-1$
42-
}
39+
Validator.assertNotEmpty(builder.insertMappings, "ERROR.6"); //$NON-NLS-1$
4340
insertMappings = builder.insertMappings;
4441
}
4542

src/main/java/org/mybatis/dynamic/sql/insert/InsertColumnListModel.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,14 @@
2222
import java.util.stream.Stream;
2323

2424
import org.mybatis.dynamic.sql.SqlColumn;
25-
import org.mybatis.dynamic.sql.exception.InvalidSqlException;
26-
import org.mybatis.dynamic.sql.util.Messages;
25+
import org.mybatis.dynamic.sql.util.Validator;
2726

2827
public class InsertColumnListModel {
2928
private final List<SqlColumn<?>> columns = new ArrayList<>();
3029

3130
private InsertColumnListModel(List<SqlColumn<?>> columns) {
3231
Objects.requireNonNull(columns);
33-
if (columns.isEmpty()) {
34-
throw new InvalidSqlException(Messages.getString("ERROR.4")); //$NON-NLS-1$
35-
}
36-
32+
Validator.assertNotEmpty(columns, "ERROR.4"); //$NON-NLS-1$
3733
this.columns.addAll(columns);
3834
}
3935

src/main/java/org/mybatis/dynamic/sql/insert/InsertModel.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@
2323

2424
import org.jetbrains.annotations.NotNull;
2525
import org.mybatis.dynamic.sql.SqlTable;
26-
import org.mybatis.dynamic.sql.exception.InvalidSqlException;
2726
import org.mybatis.dynamic.sql.insert.render.InsertRenderer;
2827
import org.mybatis.dynamic.sql.insert.render.InsertStatementProvider;
2928
import org.mybatis.dynamic.sql.render.RenderingStrategy;
3029
import org.mybatis.dynamic.sql.util.AbstractColumnMapping;
31-
import org.mybatis.dynamic.sql.util.Messages;
30+
import org.mybatis.dynamic.sql.util.Validator;
3231

3332
public class InsertModel<T> {
3433
private final SqlTable table;
@@ -39,9 +38,7 @@ private InsertModel(Builder<T> builder) {
3938
table = Objects.requireNonNull(builder.table);
4039
row = Objects.requireNonNull(builder.row);
4140
columnMappings = Objects.requireNonNull(builder.columnMappings);
42-
if (columnMappings.isEmpty()) {
43-
throw new InvalidSqlException(Messages.getString("ERROR.7")); //$NON-NLS-1$
44-
}
41+
Validator.assertNotEmpty(columnMappings, "ERROR.7"); //$NON-NLS-1$
4542
}
4643

4744
public <R> Stream<R> mapColumnMappings(Function<AbstractColumnMapping, R> mapper) {

src/main/java/org/mybatis/dynamic/sql/insert/MultiRowInsertModel.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,17 @@
1818
import java.util.Collection;
1919

2020
import org.jetbrains.annotations.NotNull;
21-
import org.mybatis.dynamic.sql.exception.InvalidSqlException;
2221
import org.mybatis.dynamic.sql.insert.render.MultiRowInsertRenderer;
2322
import org.mybatis.dynamic.sql.insert.render.MultiRowInsertStatementProvider;
2423
import org.mybatis.dynamic.sql.render.RenderingStrategy;
25-
import org.mybatis.dynamic.sql.util.Messages;
24+
import org.mybatis.dynamic.sql.util.Validator;
2625

2726
public class MultiRowInsertModel<T> extends AbstractMultiRowInsertModel<T> {
2827

2928
private MultiRowInsertModel(Builder<T> builder) {
3029
super(builder);
31-
if (records().isEmpty()) {
32-
throw new InvalidSqlException(Messages.getString("ERROR.20")); //$NON-NLS-1$
33-
}
34-
if (columnMappings.isEmpty()) {
35-
throw new InvalidSqlException(Messages.getString("ERROR.8")); //$NON-NLS-1$
36-
}
30+
Validator.assertNotEmpty(records(), "ERROR.20"); //$NON-NLS-1$
31+
Validator.assertNotEmpty(columnMappings, "ERROR.8"); //$NON-NLS-1$
3732
}
3833

3934
@NotNull

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818
import java.util.Objects;
1919
import java.util.Optional;
2020

21-
import org.mybatis.dynamic.sql.exception.InvalidSqlException;
2221
import org.mybatis.dynamic.sql.insert.GeneralInsertModel;
2322
import org.mybatis.dynamic.sql.render.RenderingContext;
2423
import org.mybatis.dynamic.sql.render.RenderingStrategy;
25-
import org.mybatis.dynamic.sql.util.Messages;
24+
import org.mybatis.dynamic.sql.util.Validator;
2625

2726
public class GeneralInsertRenderer {
2827

@@ -43,9 +42,7 @@ public GeneralInsertStatementProvider render() {
4342
.map(Optional::get)
4443
.collect(FieldAndValueCollector.collect());
4544

46-
if (collector.isEmpty()) {
47-
throw new InvalidSqlException(Messages.getString("ERROR.9")); //$NON-NLS-1$
48-
}
45+
Validator.assertFalse(collector.isEmpty(), "ERROR.9"); //$NON-NLS-1$
4946

5047
String insertStatement = InsertRenderingUtilities.calculateInsertStatement(model.table(), collector);
5148

0 commit comments

Comments
 (0)