From 6e9fe29b6abd3e1f9cd1283d8dee09d36a5b8cef Mon Sep 17 00:00:00 2001 From: Toshihiro Nakamura Date: Mon, 27 May 2024 21:00:03 +0900 Subject: [PATCH 1/4] Remove the unchecked cast warning --- .../doma/jdbc/criteria/expression/UserDefinedExpression.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/UserDefinedExpression.java b/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/UserDefinedExpression.java index db06d3cd8..90b9bb978 100644 --- a/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/UserDefinedExpression.java +++ b/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/UserDefinedExpression.java @@ -16,7 +16,7 @@ public class UserDefinedExpression implements PropertyMetamodel { private final String name; private final List> operands; - private final Class klass; + private final Class klass; private final EntityPropertyType type; private final Consumer block; @@ -38,7 +38,7 @@ public UserDefinedExpression( List> operands, Consumer block) { Objects.requireNonNull(resultPropertyMetamodel); - this.klass = (Class) resultPropertyMetamodel.asClass(); + this.klass = resultPropertyMetamodel.asClass(); this.type = resultPropertyMetamodel.asType(); this.name = Objects.requireNonNull(name); this.operands = Objects.requireNonNull(operands); From 1d79f2f9428a22dd37264539ce9084fd0c6e6fc5 Mon Sep 17 00:00:00 2001 From: Toshihiro Nakamura Date: Mon, 27 May 2024 21:04:40 +0900 Subject: [PATCH 2/4] Make KExpressions dependent on Expressions --- .../doma/kotlin/jdbc/criteria/expression/KExpressions.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doma-kotlin/src/main/kotlin/org/seasar/doma/kotlin/jdbc/criteria/expression/KExpressions.kt b/doma-kotlin/src/main/kotlin/org/seasar/doma/kotlin/jdbc/criteria/expression/KExpressions.kt index 66e95cc1a..977b3ab02 100644 --- a/doma-kotlin/src/main/kotlin/org/seasar/doma/kotlin/jdbc/criteria/expression/KExpressions.kt +++ b/doma-kotlin/src/main/kotlin/org/seasar/doma/kotlin/jdbc/criteria/expression/KExpressions.kt @@ -297,7 +297,7 @@ object KExpressions { operands: List>, noinline block: UserDefinedExpression.Declaration.() -> Unit, ): UserDefinedExpression { - return UserDefinedExpression(PROPERTY::class.java, name, operands, block) + return Expressions.userDefined(PROPERTY::class.java, name, operands, block) } inline fun userDefined( @@ -305,7 +305,7 @@ object KExpressions { vararg operands: PropertyMetamodel<*>, noinline block: UserDefinedExpression.Declaration.() -> Unit, ): UserDefinedExpression { - return UserDefinedExpression(PROPERTY::class.java, name, operands.toList(), block) + return Expressions.userDefined(PROPERTY::class.java, name, operands.toList(), block) } fun userDefined( @@ -314,7 +314,7 @@ object KExpressions { operands: List>, block: UserDefinedExpression.Declaration.() -> Unit, ): UserDefinedExpression { - return UserDefinedExpression(resultPropertyMetamodel, name, operands, block) + return Expressions.userDefined(resultPropertyMetamodel, name, operands, block) } fun userDefined( @@ -323,6 +323,6 @@ object KExpressions { vararg operands: PropertyMetamodel<*>, block: UserDefinedExpression.Declaration.() -> Unit, ): UserDefinedExpression { - return UserDefinedExpression(resultPropertyMetamodel, name, operands.toList(), block) + return Expressions.userDefined(resultPropertyMetamodel, name, operands.toList(), block) } } From d288bac4a3f1fc4520907f33ba5a627b3d7ddc56 Mon Sep 17 00:00:00 2001 From: Toshihiro Nakamura Date: Mon, 27 May 2024 21:09:59 +0900 Subject: [PATCH 3/4] Make null checks comprehensive --- .../jdbc/criteria/expression/Expressions.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/Expressions.java b/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/Expressions.java index 282321c26..e3160107f 100644 --- a/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/Expressions.java +++ b/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/Expressions.java @@ -321,6 +321,8 @@ public static UserDefinedExpression userDefined( PropertyMetamodel[] operands, Consumer block) { Objects.requireNonNull(klass); + Objects.requireNonNull(name); + Objects.requireNonNull(operands); Objects.requireNonNull(block); return userDefined(klass, name, Arrays.asList(operands), block); } @@ -343,6 +345,8 @@ public static UserDefinedExpression userDefined( PropertyMetamodel operand, Consumer block) { Objects.requireNonNull(klass); + Objects.requireNonNull(name); + Objects.requireNonNull(operand); Objects.requireNonNull(block); return userDefined(klass, name, Collections.singletonList(operand), block); } @@ -367,6 +371,9 @@ public static UserDefinedExpression userDefined( PropertyMetamodel operand2, Consumer block) { Objects.requireNonNull(klass); + Objects.requireNonNull(name); + Objects.requireNonNull(operand1); + Objects.requireNonNull(operand2); Objects.requireNonNull(block); return userDefined(klass, name, Arrays.asList(operand1, operand2), block); } @@ -393,6 +400,10 @@ public static UserDefinedExpression userDefined( PropertyMetamodel operand3, Consumer block) { Objects.requireNonNull(klass); + Objects.requireNonNull(name); + Objects.requireNonNull(operand1); + Objects.requireNonNull(operand2); + Objects.requireNonNull(operand3); Objects.requireNonNull(block); return userDefined(klass, name, Arrays.asList(operand1, operand2, operand3), block); } @@ -415,6 +426,8 @@ public static UserDefinedExpression userDefined( List> operands, Consumer block) { Objects.requireNonNull(klass); + Objects.requireNonNull(name); + Objects.requireNonNull(operands); Objects.requireNonNull(block); return new UserDefinedExpression<>(klass, name, operands, block); } @@ -437,6 +450,8 @@ public static UserDefinedExpression userDefined( PropertyMetamodel[] operands, Consumer block) { Objects.requireNonNull(resultPropertyMetamodel); + Objects.requireNonNull(name); + Objects.requireNonNull(operands); Objects.requireNonNull(block); return userDefined(resultPropertyMetamodel, name, Arrays.asList(operands), block); } @@ -459,6 +474,8 @@ public static UserDefinedExpression userDefined( PropertyMetamodel operand, Consumer block) { Objects.requireNonNull(resultPropertyMetamodel); + Objects.requireNonNull(name); + Objects.requireNonNull(operand); Objects.requireNonNull(block); return userDefined(resultPropertyMetamodel, name, Collections.singletonList(operand), block); } @@ -483,6 +500,9 @@ public static UserDefinedExpression userDefined( PropertyMetamodel operand2, Consumer block) { Objects.requireNonNull(resultPropertyMetamodel); + Objects.requireNonNull(name); + Objects.requireNonNull(operand1); + Objects.requireNonNull(operand2); Objects.requireNonNull(block); return userDefined(resultPropertyMetamodel, name, Arrays.asList(operand1, operand2), block); } @@ -509,6 +529,9 @@ public static UserDefinedExpression userDefined( PropertyMetamodel operand3, Consumer block) { Objects.requireNonNull(resultPropertyMetamodel); + Objects.requireNonNull(operand1); + Objects.requireNonNull(operand2); + Objects.requireNonNull(operand3); Objects.requireNonNull(block); return userDefined( resultPropertyMetamodel, name, Arrays.asList(operand1, operand2, operand3), block); @@ -532,6 +555,8 @@ public static UserDefinedExpression userDefined( List> operands, Consumer block) { Objects.requireNonNull(resultPropertyMetamodel); + Objects.requireNonNull(name); + Objects.requireNonNull(operands); Objects.requireNonNull(block); return new UserDefinedExpression<>(resultPropertyMetamodel, name, operands, block); } From e765f7431b28ea9cf3868c8895a0423472e0cdda Mon Sep 17 00:00:00 2001 From: Toshihiro Nakamura Date: Mon, 27 May 2024 21:18:40 +0900 Subject: [PATCH 4/4] Restrict instantiation of UserDefinedExpression to the same package --- .../doma/jdbc/criteria/expression/UserDefinedExpression.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/UserDefinedExpression.java b/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/UserDefinedExpression.java index 90b9bb978..a23293e00 100644 --- a/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/UserDefinedExpression.java +++ b/doma-core/src/main/java/org/seasar/doma/jdbc/criteria/expression/UserDefinedExpression.java @@ -20,7 +20,7 @@ public class UserDefinedExpression implements PropertyMetamodel type; private final Consumer block; - public UserDefinedExpression( + UserDefinedExpression( Class klass, String name, List> operands, @@ -32,7 +32,7 @@ public UserDefinedExpression( this.block = Objects.requireNonNull(block); } - public UserDefinedExpression( + UserDefinedExpression( PropertyMetamodel resultPropertyMetamodel, String name, List> operands,