You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2019/05/13 13:20:54 UTC

[cayenne] branch master updated: Make StringProperty comparable

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new 21657b2  Make StringProperty comparable
21657b2 is described below

commit 21657b29e072598f0c622e1b074137501e9167b2
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Mon May 13 16:17:02 2019 +0300

    Make StringProperty comparable
---
 .../org/apache/cayenne/exp/property/ComparableProperty.java  |  1 -
 .../java/org/apache/cayenne/exp/property/StringProperty.java |  2 +-
 .../org/apache/cayenne/exp/property/StringPropertyTest.java  | 12 ++++++++++++
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/property/ComparableProperty.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/property/ComparableProperty.java
index c1e15fc..4e0ef80 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/property/ComparableProperty.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/property/ComparableProperty.java
@@ -29,7 +29,6 @@ import org.apache.cayenne.exp.FunctionExpressionFactory;
  * @see org.apache.cayenne.exp.property
  * @since 4.2
  */
-// TODO: bound <E> to <E extends Comparable> once deprecated Property class is removed
 public interface ComparableProperty<E> extends Property<E> {
 
     /**
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/property/StringProperty.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/property/StringProperty.java
index 1c09822..b94c4ca 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/property/StringProperty.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/property/StringProperty.java
@@ -39,7 +39,7 @@ import org.apache.cayenne.exp.FunctionExpressionFactory;
  * @see org.apache.cayenne.exp.property
  * @since 4.2
  */
-public class StringProperty<E extends CharSequence> extends BaseProperty<E> {
+public class StringProperty<E extends CharSequence> extends BaseProperty<E> implements ComparableProperty<E> {
 
     /**
      * Constructs a new property with the given name and expression
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/property/StringPropertyTest.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/property/StringPropertyTest.java
index a2b7388..02e0eaa 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/property/StringPropertyTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/property/StringPropertyTest.java
@@ -164,6 +164,18 @@ public class StringPropertyTest {
     }
 
     @Test
+    public void compare() {
+        assertEquals(exp("path > 'abc'"),  property.gt("abc"));
+        assertEquals(exp("path > other"),  property.gt(other));
+        assertEquals(exp("path >= 'abc'"), property.gte("abc"));
+        assertEquals(exp("path >= other"), property.gte(other));
+        assertEquals(exp("path < 'abc'"),  property.lt("abc"));
+        assertEquals(exp("path < other"),  property.lt(other));
+        assertEquals(exp("path <= 'abc'"), property.lte("abc"));
+        assertEquals(exp("path <= other"), property.lte(other));
+    }
+
+    @Test
     public void alias() {
         assertEquals("path", property.getName());
         assertNull(property.getAlias());