Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor UserDefinedExpression and related classes #1112

Merged
merged 4 commits into from
May 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,8 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
PropertyMetamodel<?>[] operands,
Consumer<UserDefinedExpression.Declaration> block) {
Objects.requireNonNull(klass);
Objects.requireNonNull(name);
Objects.requireNonNull(operands);
Objects.requireNonNull(block);
return userDefined(klass, name, Arrays.asList(operands), block);
}
Expand All @@ -343,6 +345,8 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
PropertyMetamodel<?> operand,
Consumer<UserDefinedExpression.Declaration> block) {
Objects.requireNonNull(klass);
Objects.requireNonNull(name);
Objects.requireNonNull(operand);
Objects.requireNonNull(block);
return userDefined(klass, name, Collections.singletonList(operand), block);
}
Expand All @@ -367,6 +371,9 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
PropertyMetamodel<?> operand2,
Consumer<UserDefinedExpression.Declaration> 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);
}
Expand All @@ -393,6 +400,10 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
PropertyMetamodel<?> operand3,
Consumer<UserDefinedExpression.Declaration> 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);
}
Expand All @@ -415,6 +426,8 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
List<? extends PropertyMetamodel<?>> operands,
Consumer<UserDefinedExpression.Declaration> block) {
Objects.requireNonNull(klass);
Objects.requireNonNull(name);
Objects.requireNonNull(operands);
Objects.requireNonNull(block);
return new UserDefinedExpression<>(klass, name, operands, block);
}
Expand All @@ -437,6 +450,8 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
PropertyMetamodel<?>[] operands,
Consumer<UserDefinedExpression.Declaration> block) {
Objects.requireNonNull(resultPropertyMetamodel);
Objects.requireNonNull(name);
Objects.requireNonNull(operands);
Objects.requireNonNull(block);
return userDefined(resultPropertyMetamodel, name, Arrays.asList(operands), block);
}
Expand All @@ -459,6 +474,8 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
PropertyMetamodel<?> operand,
Consumer<UserDefinedExpression.Declaration> block) {
Objects.requireNonNull(resultPropertyMetamodel);
Objects.requireNonNull(name);
Objects.requireNonNull(operand);
Objects.requireNonNull(block);
return userDefined(resultPropertyMetamodel, name, Collections.singletonList(operand), block);
}
Expand All @@ -483,6 +500,9 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
PropertyMetamodel<?> operand2,
Consumer<UserDefinedExpression.Declaration> 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);
}
Expand All @@ -509,6 +529,9 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
PropertyMetamodel<?> operand3,
Consumer<UserDefinedExpression.Declaration> 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);
Expand All @@ -532,6 +555,8 @@ public static <PROPERTY> UserDefinedExpression<PROPERTY> userDefined(
List<? extends PropertyMetamodel<?>> operands,
Consumer<UserDefinedExpression.Declaration> block) {
Objects.requireNonNull(resultPropertyMetamodel);
Objects.requireNonNull(name);
Objects.requireNonNull(operands);
Objects.requireNonNull(block);
return new UserDefinedExpression<>(resultPropertyMetamodel, name, operands, block);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
public class UserDefinedExpression<PROPERTY> implements PropertyMetamodel<PROPERTY> {
private final String name;
private final List<? extends PropertyMetamodel<?>> operands;
private final Class<PROPERTY> klass;
private final Class<?> klass;
private final EntityPropertyType<?, ?> type;
private final Consumer<Declaration> block;

public UserDefinedExpression(
UserDefinedExpression(
Class<PROPERTY> klass,
String name,
List<? extends PropertyMetamodel<?>> operands,
Expand All @@ -32,13 +32,13 @@ public UserDefinedExpression(
this.block = Objects.requireNonNull(block);
}

public UserDefinedExpression(
UserDefinedExpression(
PropertyMetamodel<PROPERTY> resultPropertyMetamodel,
String name,
List<? extends PropertyMetamodel<?>> operands,
Consumer<Declaration> block) {
Objects.requireNonNull(resultPropertyMetamodel);
this.klass = (Class<PROPERTY>) resultPropertyMetamodel.asClass();
this.klass = resultPropertyMetamodel.asClass();
this.type = resultPropertyMetamodel.asType();
this.name = Objects.requireNonNull(name);
this.operands = Objects.requireNonNull(operands);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -297,15 +297,15 @@ object KExpressions {
operands: List<PropertyMetamodel<*>>,
noinline block: UserDefinedExpression.Declaration.() -> Unit,
): UserDefinedExpression<PROPERTY> {
return UserDefinedExpression(PROPERTY::class.java, name, operands, block)
return Expressions.userDefined(PROPERTY::class.java, name, operands, block)
}

inline fun <reified PROPERTY> userDefined(
name: String,
vararg operands: PropertyMetamodel<*>,
noinline block: UserDefinedExpression.Declaration.() -> Unit,
): UserDefinedExpression<PROPERTY> {
return UserDefinedExpression(PROPERTY::class.java, name, operands.toList(), block)
return Expressions.userDefined(PROPERTY::class.java, name, operands.toList(), block)
}

fun <PROPERTY> userDefined(
Expand All @@ -314,7 +314,7 @@ object KExpressions {
operands: List<PropertyMetamodel<*>>,
block: UserDefinedExpression.Declaration.() -> Unit,
): UserDefinedExpression<PROPERTY> {
return UserDefinedExpression(resultPropertyMetamodel, name, operands, block)
return Expressions.userDefined(resultPropertyMetamodel, name, operands, block)
}

fun <PROPERTY> userDefined(
Expand All @@ -323,6 +323,6 @@ object KExpressions {
vararg operands: PropertyMetamodel<*>,
block: UserDefinedExpression.Declaration.() -> Unit,
): UserDefinedExpression<PROPERTY> {
return UserDefinedExpression(resultPropertyMetamodel, name, operands.toList(), block)
return Expressions.userDefined(resultPropertyMetamodel, name, operands.toList(), block)
}
}
Loading