From c90bd88b5480e22f73869539ffa179fa1efec6f0 Mon Sep 17 00:00:00 2001 From: Danilo Date: Wed, 13 Feb 2019 15:07:30 -0200 Subject: [PATCH] Support Character.class in EnumConversion --- .../java/com/querydsl/core/support/EnumConversion.java | 4 ++-- .../com/querydsl/core/support/EnumConversionTest.java | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/querydsl-core/src/main/java/com/querydsl/core/support/EnumConversion.java b/querydsl-core/src/main/java/com/querydsl/core/support/EnumConversion.java index 39f196eba..988ef5137 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/support/EnumConversion.java +++ b/querydsl-core/src/main/java/com/querydsl/core/support/EnumConversion.java @@ -58,9 +58,9 @@ public class EnumConversion extends FactoryExpressionBase { @Override public T newInstance(Object... args) { if (args[0] != null) { - if (args[0] instanceof String) { + if (args[0] instanceof String || args[0] instanceof Character) { @SuppressWarnings("unchecked") //The expression type is an enum - T rv = (T) Enum.valueOf(getType().asSubclass(Enum.class), (String) args[0]); + T rv = (T) Enum.valueOf(getType().asSubclass(Enum.class), (String) args[0].toString()); return rv; } else if (args[0] instanceof Number) { return values[((Number) args[0]).intValue()]; diff --git a/querydsl-core/src/test/java/com/querydsl/core/support/EnumConversionTest.java b/querydsl-core/src/test/java/com/querydsl/core/support/EnumConversionTest.java index 40f0411a6..7b0ea508b 100644 --- a/querydsl-core/src/test/java/com/querydsl/core/support/EnumConversionTest.java +++ b/querydsl-core/src/test/java/com/querydsl/core/support/EnumConversionTest.java @@ -11,7 +11,14 @@ import com.querydsl.core.types.dsl.StringPath; public class EnumConversionTest { - public enum Color { GREEN, BLUE, RED, YELLOW, BLACK, WHITE } + public enum Color { GREEN, BLUE, RED, YELLOW, B, W } + + @Test + public void nameForCharacter() { + EnumPath color = Expressions.enumPath(Color.class, "path"); + EnumConversion conv = new EnumConversion(color); + assertEquals(Color.W, conv.newInstance('W')); + } @Test public void name() {