Skip to content

Commit 1e54aae

Browse files
committed
Initial Updates for JSpecify
1 parent 82ae0bd commit 1e54aae

File tree

167 files changed

+1166
-660
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

167 files changed

+1166
-660
lines changed

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@
8686
</properties>
8787

8888
<dependencies>
89+
<dependency>
90+
<groupId>org.jspecify</groupId>
91+
<artifactId>jspecify</artifactId>
92+
<version>1.0.0</version>
93+
</dependency>
8994
<dependency>
9095
<groupId>org.jetbrains.kotlin</groupId>
9196
<artifactId>kotlin-stdlib-jdk8</artifactId>

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,16 @@
1919
import java.util.function.Predicate;
2020
import java.util.function.Supplier;
2121

22+
import org.jspecify.annotations.Nullable;
23+
2224
public abstract class AbstractSingleValueCondition<T> implements VisitableCondition<T> {
23-
protected final T value;
25+
protected final @Nullable T value;
2426

25-
protected AbstractSingleValueCondition(T value) {
27+
protected AbstractSingleValueCondition(@Nullable T value) {
2628
this.value = value;
2729
}
2830

29-
public T value() {
31+
public @Nullable T value() {
3032
return value;
3133
}
3234

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,22 @@
2121
import java.util.function.Predicate;
2222
import java.util.function.Supplier;
2323

24+
import org.jspecify.annotations.Nullable;
25+
2426
public abstract class AbstractTwoValueCondition<T> implements VisitableCondition<T> {
25-
protected final T value1;
26-
protected final T value2;
27+
protected final @Nullable T value1;
28+
protected final @Nullable T value2;
2729

28-
protected AbstractTwoValueCondition(T value1, T value2) {
30+
protected AbstractTwoValueCondition(@Nullable T value1, @Nullable T value2) {
2931
this.value1 = value1;
3032
this.value2 = value2;
3133
}
3234

33-
public T value1() {
35+
public @Nullable T value1() {
3436
return value1;
3537
}
3638

37-
public T value2() {
39+
public @Nullable T value2() {
3840
return value2;
3941
}
4042

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@
1919
import java.util.Optional;
2020
import java.util.function.Supplier;
2121

22+
import org.jspecify.annotations.Nullable;
23+
2224
public abstract class AliasableSqlTable<T extends AliasableSqlTable<T>> extends SqlTable {
2325

24-
private String tableAlias;
26+
private @Nullable String tableAlias;
2527
private final Supplier<T> constructor;
2628

2729
protected AliasableSqlTable(String tableName, Supplier<T> constructor) {

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import java.util.Objects;
2222
import java.util.Optional;
2323

24+
import org.jspecify.annotations.Nullable;
25+
2426
/**
2527
* This class represents a criteria group with either an AND or an OR connector.
2628
* This class is intentionally NOT derived from SqlCriterion because we only want it to be
@@ -32,7 +34,7 @@
3234
*/
3335
public class AndOrCriteriaGroup {
3436
private final String connector;
35-
private final SqlCriterion initialCriterion;
37+
private final @Nullable SqlCriterion initialCriterion;
3638
private final List<AndOrCriteriaGroup> subCriteria;
3739

3840
private AndOrCriteriaGroup(Builder builder) {
@@ -54,16 +56,16 @@ public List<AndOrCriteriaGroup> subCriteria() {
5456
}
5557

5658
public static class Builder {
57-
private String connector;
58-
private SqlCriterion initialCriterion;
59+
private @Nullable String connector;
60+
private @Nullable SqlCriterion initialCriterion;
5961
private final List<AndOrCriteriaGroup> subCriteria = new ArrayList<>();
6062

6163
public Builder withConnector(String connector) {
6264
this.connector = connector;
6365
return this;
6466
}
6567

66-
public Builder withInitialCriterion(SqlCriterion initialCriterion) {
68+
public Builder withInitialCriterion(@Nullable SqlCriterion initialCriterion) {
6769
this.initialCriterion = initialCriterion;
6870
return this;
6971
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
import java.util.Optional;
1919

20+
import org.jspecify.annotations.Nullable;
21+
2022
/**
2123
* Describes a column with a known data type. The type is only used by the compiler to assure type safety
2224
* when building clauses with conditions.
@@ -34,7 +36,7 @@ public interface BindableColumn<T> extends BasicColumn {
3436
@Override
3537
BindableColumn<T> as(String alias);
3638

37-
default Object convertParameterType(T value) {
39+
default @Nullable Object convertParameterType(@Nullable T value) {
3840
return value;
3941
}
4042

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
import java.util.Objects;
1919

20+
import org.jspecify.annotations.Nullable;
21+
2022
public class ColumnAndConditionCriterion<T> extends SqlCriterion {
2123
private final BindableColumn<T> column;
2224
private final VisitableCondition<T> condition;
@@ -45,8 +47,8 @@ public static <T> Builder<T> withColumn(BindableColumn<T> column) {
4547
}
4648

4749
public static class Builder<T> extends AbstractBuilder<Builder<T>> {
48-
private BindableColumn<T> column;
49-
private VisitableCondition<T> condition;
50+
private @Nullable BindableColumn<T> column;
51+
private @Nullable VisitableCondition<T> condition;
5052

5153
public Builder<T> withColumn(BindableColumn<T> column) {
5254
this.column = column;

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

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

21+
import org.jspecify.annotations.Nullable;
2122
import org.mybatis.dynamic.sql.render.RenderingContext;
2223
import org.mybatis.dynamic.sql.util.FragmentAndParameters;
2324

2425
public class Constant<T> implements BindableColumn<T> {
2526

26-
private final String alias;
27+
private final @Nullable String alias;
2728
private final String value;
2829

2930
private Constant(String value) {
3031
this(value, null);
3132
}
3233

33-
private Constant(String value, String alias) {
34+
private Constant(String value, @Nullable String alias) {
3435
this.value = Objects.requireNonNull(value);
3536
this.alias = alias;
3637
}

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
import java.util.Optional;
1919

20+
import org.jspecify.annotations.Nullable;
21+
2022
/**
2123
* This class represents a criteria group without an AND or an OR connector. This is useful
2224
* in situations where the initial SqlCriterion in a list should be further grouped
@@ -27,7 +29,7 @@
2729
* @since 1.4.0
2830
*/
2931
public class CriteriaGroup extends SqlCriterion {
30-
private final SqlCriterion initialCriterion;
32+
private final @Nullable SqlCriterion initialCriterion;
3133

3234
protected CriteriaGroup(AbstractGroupBuilder<?> builder) {
3335
super(builder);
@@ -44,9 +46,9 @@ public <R> R accept(SqlCriterionVisitor<R> visitor) {
4446
}
4547

4648
public abstract static class AbstractGroupBuilder<T extends AbstractGroupBuilder<T>> extends AbstractBuilder<T> {
47-
private SqlCriterion initialCriterion;
49+
private @Nullable SqlCriterion initialCriterion;
4850

49-
public T withInitialCriterion(SqlCriterion initialCriterion) {
51+
public T withInitialCriterion(@Nullable SqlCriterion initialCriterion) {
5052
this.initialCriterion = initialCriterion;
5153
return getThis();
5254
}

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

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.Objects;
2020
import java.util.Optional;
2121

22+
import org.jspecify.annotations.Nullable;
2223
import org.mybatis.dynamic.sql.render.RenderingContext;
2324
import org.mybatis.dynamic.sql.util.FragmentAndParameters;
2425

@@ -34,10 +35,10 @@
3435
*/
3536
public class DerivedColumn<T> implements BindableColumn<T> {
3637
private final String name;
37-
private final String tableQualifier;
38-
private final String columnAlias;
39-
private final JDBCType jdbcType;
40-
private final String typeHandler;
38+
private final @Nullable String tableQualifier;
39+
private final @Nullable String columnAlias;
40+
private final @Nullable JDBCType jdbcType;
41+
private final @Nullable String typeHandler;
4142

4243
protected DerivedColumn(Builder<T> builder) {
4344
this.name = Objects.requireNonNull(builder.name);
@@ -93,18 +94,18 @@ public static <T> DerivedColumn<T> of(String name, String tableQualifier) {
9394
}
9495

9596
public static class Builder<T> {
96-
private String name;
97-
private String tableQualifier;
98-
private String columnAlias;
99-
private JDBCType jdbcType;
100-
private String typeHandler;
97+
private @Nullable String name;
98+
private @Nullable String tableQualifier;
99+
private @Nullable String columnAlias;
100+
private @Nullable JDBCType jdbcType;
101+
private @Nullable String typeHandler;
101102

102103
public Builder<T> withName(String name) {
103104
this.name = name;
104105
return this;
105106
}
106107

107-
public Builder<T> withTableQualifier(String tableQualifier) {
108+
public Builder<T> withTableQualifier(@Nullable String tableQualifier) {
108109
this.tableQualifier = tableQualifier;
109110
return this;
110111
}
@@ -114,12 +115,12 @@ public Builder<T> withColumnAlias(String columnAlias) {
114115
return this;
115116
}
116117

117-
public Builder<T> withJdbcType(JDBCType jdbcType) {
118+
public Builder<T> withJdbcType(@Nullable JDBCType jdbcType) {
118119
this.jdbcType = jdbcType;
119120
return this;
120121
}
121122

122-
public Builder<T> withTypeHandler(String typeHandler) {
123+
public Builder<T> withTypeHandler(@Nullable String typeHandler) {
123124
this.typeHandler = typeHandler;
124125
return this;
125126
}

0 commit comments

Comments
 (0)