From 9deabc2e1e6e232444bf85f7d823246734195ba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Mon, 14 Mar 2011 06:53:38 +0000 Subject: [PATCH] #734319 : added PathBuilder.getEnum --- .../mysema/query/types/path/PathBuilder.java | 22 ++++++++++++++++++ .../query/types/path/PathBuilderTest.java | 23 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/querydsl-core/src/main/java/com/mysema/query/types/path/PathBuilder.java b/querydsl-core/src/main/java/com/mysema/query/types/path/PathBuilder.java index b62f01fea..b6bf1976f 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/path/PathBuilder.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/path/PathBuilder.java @@ -202,6 +202,28 @@ public final class PathBuilder extends EntityPathBase { return super.createDateTime(property, type); } + /** + * Get a new Enum path + * + * @param + * @param property property name + * @param type + * @return + */ + public > EnumPath getEnum(String property, Class type) { + return super.createEnum(property, type); + } + + /** + * @param + * @param path + * @return + */ + @SuppressWarnings("unchecked") + public > EnumPath get(EnumPath path){ + return getEnum(toString(path), (Class)path.getType()); + } + /** * Get a new List typed path * diff --git a/querydsl-core/src/test/java/com/mysema/query/types/path/PathBuilderTest.java b/querydsl-core/src/test/java/com/mysema/query/types/path/PathBuilderTest.java index ace0eddd5..514321cc4 100644 --- a/querydsl-core/src/test/java/com/mysema/query/types/path/PathBuilderTest.java +++ b/querydsl-core/src/test/java/com/mysema/query/types/path/PathBuilderTest.java @@ -6,6 +6,7 @@ package com.mysema.query.types.path; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import java.sql.Time; import java.util.Date; @@ -18,10 +19,16 @@ import com.mysema.query.BooleanBuilder; public class PathBuilderTest { + enum Gender { + MALE, FEMALE + } + public static class User { private String firstName, lastName, username; + private Gender gender; + public String getFirstName() { return firstName; } @@ -46,6 +53,22 @@ public class PathBuilderTest { this.username = username; } + public Gender getGender() { + return gender; + } + + public void setGender(Gender gender) { + this.gender = gender; + } + + } + + @Test + public void getEnum(){ + PathBuilder entityPath = new PathBuilder(User.class, "entity"); + EnumPath enumPath = entityPath.getEnum("gender", Gender.class); + assertNotNull(enumPath.ordinal()); + assertEquals(enumPath, entityPath.get(enumPath)); } @Test