From f43b5ecb79e459f5895f7b9f1aec8c248d84dc33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Sun, 22 May 2011 08:40:44 +0000 Subject: [PATCH] added test for comparable entities --- .../java/com/mysema/query/alias/Alias.java | 65 ++++++++++--------- .../com/mysema/query/alias/AliasTest.java | 11 ++++ .../mysema/query/alias/ComparableEntity.java | 14 ++++ 3 files changed, 58 insertions(+), 32 deletions(-) create mode 100644 querydsl-core/src/test/java/com/mysema/query/alias/ComparableEntity.java diff --git a/querydsl-core/src/main/java/com/mysema/query/alias/Alias.java b/querydsl-core/src/main/java/com/mysema/query/alias/Alias.java index 3aa850c28..efe84478a 100644 --- a/querydsl-core/src/main/java/com/mysema/query/alias/Alias.java +++ b/querydsl-core/src/main/java/com/mysema/query/alias/Alias.java @@ -20,24 +20,10 @@ import org.apache.commons.lang.StringUtils; import com.mysema.query.types.EntityPath; import com.mysema.query.types.Expression; +import com.mysema.query.types.Path; import com.mysema.query.types.PathMetadataFactory; import com.mysema.query.types.expr.SimpleExpression; -import com.mysema.query.types.path.ArrayPath; -import com.mysema.query.types.path.BooleanPath; -import com.mysema.query.types.path.CollectionPath; -import com.mysema.query.types.path.ComparablePath; -import com.mysema.query.types.path.DatePath; -import com.mysema.query.types.path.DateTimePath; -import com.mysema.query.types.path.EntityPathBase; -import com.mysema.query.types.path.EnumPath; -import com.mysema.query.types.path.ListPath; -import com.mysema.query.types.path.MapPath; -import com.mysema.query.types.path.NumberPath; -import com.mysema.query.types.path.PathBuilder; -import com.mysema.query.types.path.SetPath; -import com.mysema.query.types.path.SimplePath; -import com.mysema.query.types.path.StringPath; -import com.mysema.query.types.path.TimePath; +import com.mysema.query.types.path.*; /** * Alias provides alias factory methods @@ -92,22 +78,8 @@ public final class Alias { } public static > ComparablePath $(D arg) { - return aliasFactory.> getCurrentAndReset(); - } - - @SuppressWarnings("unchecked") - @Nullable - public static EntityPathBase $(D arg) { - EntityPathBase rv = aliasFactory.> getCurrentAndReset(); - if (rv != null) { - return rv; - }else if (arg instanceof EntityPath){ - return (EntityPathBase)arg; - } else if (arg instanceof ManagedObject) { - return (EntityPathBase) ((ManagedObject) arg).__mappedPath(); - } else { - return null; - } +// return aliasFactory.> getCurrentAndReset(); + return Alias.>getPath(arg); } public static NumberPath $(Double arg) { @@ -161,6 +133,35 @@ public final class Alias { public static DateTimePath $(Timestamp arg) { return aliasFactory.> getCurrentAndReset(); } + + @SuppressWarnings("unchecked") + @Nullable + public static EntityPathBase $(D arg) { + EntityPathBase rv = aliasFactory.> getCurrentAndReset(); + if (rv != null) { + return rv; + }else if (arg instanceof EntityPath){ + return (EntityPathBase)arg; + } else if (arg instanceof ManagedObject) { + return (EntityPathBase) ((ManagedObject) arg).__mappedPath(); + } else { + return null; + } + } + + private static > P getPath(D arg) { + P rv = aliasFactory.

getCurrentAndReset(); + if (rv != null) { + return rv; + }else if (arg instanceof Path){ + return (P)arg; + } else if (arg instanceof ManagedObject) { + return (P) ((ManagedObject) arg).__mappedPath(); + } else { + return null; + } + } + //CHECKSTYLE:ON public static A alias(Class cl) { diff --git a/querydsl-core/src/test/java/com/mysema/query/alias/AliasTest.java b/querydsl-core/src/test/java/com/mysema/query/alias/AliasTest.java index 345aa59f4..0b77d8b9d 100644 --- a/querydsl-core/src/test/java/com/mysema/query/alias/AliasTest.java +++ b/querydsl-core/src/test/java/com/mysema/query/alias/AliasTest.java @@ -8,8 +8,11 @@ package com.mysema.query.alias; import static com.mysema.query.alias.Alias.$; import static org.junit.Assert.assertEquals; +import org.junit.Ignore; import org.junit.Test; +import com.mysema.query.types.Path; + public class AliasTest { @Test @@ -18,6 +21,14 @@ public class AliasTest { Alias.alias(DomainType.class, $(domainType.getCollection()).any()); } + @Test + @Ignore // FIXME + public void ComparableEntity() { + ComparableEntity entity = Alias.alias(ComparableEntity.class); + Path path = $(entity); + assertEquals(ComparableEntity.class, path.getType()); + } + @Test public void BasicUsage(){ DomainType domainType = Alias.alias(DomainType.class); diff --git a/querydsl-core/src/test/java/com/mysema/query/alias/ComparableEntity.java b/querydsl-core/src/test/java/com/mysema/query/alias/ComparableEntity.java new file mode 100644 index 000000000..fa65146c1 --- /dev/null +++ b/querydsl-core/src/test/java/com/mysema/query/alias/ComparableEntity.java @@ -0,0 +1,14 @@ +package com.mysema.query.alias; + +public class ComparableEntity implements Comparable{ + + @Override + public int compareTo(ComparableEntity o) { + return 0; + } + + public String getProperty(){ + return ""; + } + +}