Repository: deltaspike
Updated Branches:
  refs/heads/master 35883fbd0 -> 13e1d4d0d


DELTASPIKE-702 Remove restirctions to number


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/04ee688a
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/04ee688a
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/04ee688a

Branch: refs/heads/master
Commit: 04ee688a8d1ffbefc3aae7db4ce02297e226a350
Parents: 35883fb
Author: Thomas Hug <[email protected]>
Authored: Fri Aug 29 15:46:08 2014 +0200
Committer: Thomas Hug <[email protected]>
Committed: Fri Aug 29 16:47:54 2014 +0200

----------------------------------------------------------------------
 .../deltaspike/data/api/criteria/Criteria.java  |  4 +--
 .../data/impl/criteria/QueryCriteria.java       |  4 +--
 .../impl/criteria/predicate/GreaterThan.java    |  4 +--
 .../data/impl/criteria/predicate/LessThan.java  |  4 +--
 .../data/impl/criteria/CriteriaTest.java        | 27 ++++++++++++++++++++
 .../test/service/SimpleCriteriaRepository.java  |  8 ++++++
 6 files changed, 43 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/04ee688a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/criteria/Criteria.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/criteria/Criteria.java
 
b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/criteria/Criteria.java
index 6dfedd1..6ff411b 100644
--- 
a/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/criteria/Criteria.java
+++ 
b/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/criteria/Criteria.java
@@ -232,7 +232,7 @@ public interface Criteria<C, R>
      * @param value         The comparison value.
      * @return              Fluent API: Criteria instance.
      */
-    <P extends Number> Criteria<C, R> lt(SingularAttribute<? super C, P> att, 
P value);
+    <P extends Comparable<? super P>> Criteria<C, R> lt(SingularAttribute<? 
super C, P> att, P value);
 
     /**
      * Less than or equals predicate.
@@ -248,7 +248,7 @@ public interface Criteria<C, R>
      * @param value         The comparison value.
      * @return              Fluent API: Criteria instance.
      */
-    <P extends Number> Criteria<C, R> gt(SingularAttribute<? super C, P> att, 
P value);
+    <P extends Comparable<? super P>> Criteria<C, R> gt(SingularAttribute<? 
super C, P> att, P value);
 
     /**
      * Greater than or equals predicate.

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/04ee688a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java
 
b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java
index 6c0aa11..b530280 100644
--- 
a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java
+++ 
b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/QueryCriteria.java
@@ -388,7 +388,7 @@ public class QueryCriteria<C, R> implements Criteria<C, R>
     }
 
     @Override
-    public <P extends Number> Criteria<C, R> lt(SingularAttribute<? super C, 
P> att, P value)
+    public <P extends Comparable<? super P>> Criteria<C, R> 
lt(SingularAttribute<? super C, P> att, P value)
     {
         add(new LessThan<C, P>(att, value), value);
         return this;
@@ -402,7 +402,7 @@ public class QueryCriteria<C, R> implements Criteria<C, R>
     }
 
     @Override
-    public <P extends Number> Criteria<C, R> gt(SingularAttribute<? super C, 
P> att, P value)
+    public <P extends Comparable<? super P>> Criteria<C, R> 
gt(SingularAttribute<? super C, P> att, P value)
     {
         add(new GreaterThan<C, P>(att, value), value);
         return this;

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/04ee688a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/GreaterThan.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/GreaterThan.java
 
b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/GreaterThan.java
index 6cfd6fd..6bf61d7 100644
--- 
a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/GreaterThan.java
+++ 
b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/GreaterThan.java
@@ -26,7 +26,7 @@ import javax.persistence.criteria.Path;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.metamodel.SingularAttribute;
 
-public class GreaterThan<E, V extends Number> extends SingleValueBuilder<E, V>
+public class GreaterThan<E, V extends Comparable<? super V>> extends 
SingleValueBuilder<E, V>
 {
 
     public GreaterThan(SingularAttribute<? super E, V> att, V value)
@@ -37,7 +37,7 @@ public class GreaterThan<E, V extends Number> extends 
SingleValueBuilder<E, V>
     @Override
     public List<Predicate> build(CriteriaBuilder builder, Path<E> path)
     {
-        return Arrays.asList(builder.gt(path.get(getAtt()), getValue()));
+        return Arrays.asList(builder.greaterThan(path.get(getAtt()), 
getValue()));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/04ee688a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/LessThan.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/LessThan.java
 
b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/LessThan.java
index 837d873..6086da2 100644
--- 
a/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/LessThan.java
+++ 
b/deltaspike/modules/data/impl/src/main/java/org/apache/deltaspike/data/impl/criteria/predicate/LessThan.java
@@ -26,7 +26,7 @@ import javax.persistence.criteria.Path;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.metamodel.SingularAttribute;
 
-public class LessThan<E, V extends Number> extends SingleValueBuilder<E, V>
+public class LessThan<E, V extends Comparable<? super V>> extends 
SingleValueBuilder<E, V>
 {
 
     public LessThan(SingularAttribute<? super E, V> att, V value)
@@ -37,7 +37,7 @@ public class LessThan<E, V extends Number> extends 
SingleValueBuilder<E, V>
     @Override
     public List<Predicate> build(CriteriaBuilder builder, Path<E> path)
     {
-        return Arrays.asList(builder.lt(path.get(getAtt()), getValue()));
+        return Arrays.asList(builder.lessThan(path.get(getAtt()), getValue()));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/04ee688a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/criteria/CriteriaTest.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/criteria/CriteriaTest.java
 
b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/criteria/CriteriaTest.java
index 2cfa21c..031b0da 100644
--- 
a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/criteria/CriteriaTest.java
+++ 
b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/impl/criteria/CriteriaTest.java
@@ -26,6 +26,8 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 
 import javax.enterprise.inject.Produces;
@@ -357,6 +359,31 @@ public class CriteriaTest extends TransactionalTestCase
         assertEquals(1l, result.longValue());
     }
 
+    @Test
+    public void should_create_date_criteria()
+    {
+        // given
+        final String name = "should_create_date_criteria";
+        final Simple simple = new Simple(name);
+        simple.setTemporal(new Date());
+        entityManager.persist(simple);
+        entityManager.flush();
+
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(simple.getTemporal());
+        cal.add(Calendar.MINUTE, -1);
+        Date from = cal.getTime();
+        cal.add(Calendar.MINUTE, 2);
+        Date to = cal.getTime();
+
+        // when
+        final List<Simple> result = repo.findByTimeBetween(from, to);
+
+        // then
+        assertNotNull(result);
+        assertEquals(1, result.size());
+    }
+
     @Override
     protected EntityManager getEntityManager()
     {

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/04ee688a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleCriteriaRepository.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleCriteriaRepository.java
 
b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleCriteriaRepository.java
index 244587b..c911b25 100644
--- 
a/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleCriteriaRepository.java
+++ 
b/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleCriteriaRepository.java
@@ -18,6 +18,7 @@
  */
 package org.apache.deltaspike.data.test.service;
 
+import java.util.Date;
 import java.util.List;
 
 import org.apache.deltaspike.data.api.AbstractEntityRepository;
@@ -54,6 +55,13 @@ public abstract class SimpleCriteriaRepository extends 
AbstractEntityRepository<
                 .getAnyResult();
     }
 
+    public List<Simple> findByTimeBetween(Date from, Date to) {
+        return criteria()
+                 .gt(Simple_.temporal, from)
+                 .lt(Simple_.temporal, to)
+                 .getResultList();
+    }
+
     public Long criteriaCount(String name)
     {
         return criteria()

Reply via email to