You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2017/09/16 08:43:13 UTC

[1/2] groovy git commit: Refine tuples

Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_6_X 3929d0382 -> 57c221ee6


Refine tuples

(cherry picked from commit d6b0cb4)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/42ccfc7b
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/42ccfc7b
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/42ccfc7b

Branch: refs/heads/GROOVY_2_6_X
Commit: 42ccfc7b7a66e54071c3cf2bb54bc4cc2882a126
Parents: 3929d03
Author: sunlan <su...@apache.org>
Authored: Sat Sep 16 15:38:43 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Sep 16 16:42:57 2017 +0800

----------------------------------------------------------------------
 src/main/groovy/lang/Tuple1.java | 4 +++-
 src/main/groovy/lang/Tuple2.java | 4 +++-
 src/main/groovy/lang/Tuple3.java | 4 +++-
 src/main/groovy/lang/Tuple4.java | 4 +++-
 src/main/groovy/lang/Tuple5.java | 4 +++-
 src/main/groovy/lang/Tuple6.java | 4 +++-
 src/main/groovy/lang/Tuple7.java | 4 +++-
 src/main/groovy/lang/Tuple8.java | 4 +++-
 src/main/groovy/lang/Tuple9.java | 4 +++-
 9 files changed, 27 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/42ccfc7b/src/main/groovy/lang/Tuple1.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple1.java b/src/main/groovy/lang/Tuple1.java
index f57bc3b..1506bb0 100644
--- a/src/main/groovy/lang/Tuple1.java
+++ b/src/main/groovy/lang/Tuple1.java
@@ -23,10 +23,12 @@ package groovy.lang;
  *
  * @since 2.5.0
  */
-public class Tuple1<T1> extends AbstractTuple {
+public class Tuple1<T1> extends Tuple {
     private final T1 first;
 
     public Tuple1(T1 first) {
+        super(first);
+
         this.first = first;
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/42ccfc7b/src/main/groovy/lang/Tuple2.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple2.java b/src/main/groovy/lang/Tuple2.java
index fe64d5e..d3a8be7 100644
--- a/src/main/groovy/lang/Tuple2.java
+++ b/src/main/groovy/lang/Tuple2.java
@@ -21,11 +21,13 @@ package groovy.lang;
 /**
  * Represents a list of 2 typed Objects.
  */
-public class Tuple2<T1, T2> extends AbstractTuple {
+public class Tuple2<T1, T2> extends Tuple {
     private final T1 first;
     private final T2 second;
 
     public Tuple2(T1 first, T2 second) {
+        super(first, second);
+
         this.first = first;
         this.second = second;
     }

http://git-wip-us.apache.org/repos/asf/groovy/blob/42ccfc7b/src/main/groovy/lang/Tuple3.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple3.java b/src/main/groovy/lang/Tuple3.java
index 59b06f5..de539ec 100644
--- a/src/main/groovy/lang/Tuple3.java
+++ b/src/main/groovy/lang/Tuple3.java
@@ -24,12 +24,14 @@ package groovy.lang;
  *
  * @since 2.5.0
  */
-public class Tuple3<T1, T2, T3> extends AbstractTuple {
+public class Tuple3<T1, T2, T3> extends Tuple {
     private final T1 first;
     private final T2 second;
     private final T3 third;
 
     public Tuple3(T1 first, T2 second, T3 third) {
+        super(first, second, third);
+
         this.first = first;
         this.second = second;
         this.third = third;

http://git-wip-us.apache.org/repos/asf/groovy/blob/42ccfc7b/src/main/groovy/lang/Tuple4.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple4.java b/src/main/groovy/lang/Tuple4.java
index b3cf839..069f3af 100644
--- a/src/main/groovy/lang/Tuple4.java
+++ b/src/main/groovy/lang/Tuple4.java
@@ -24,13 +24,15 @@ package groovy.lang;
  *
  * @since 2.5.0
  */
-public class Tuple4<T1, T2, T3, T4> extends AbstractTuple {
+public class Tuple4<T1, T2, T3, T4> extends Tuple {
     private final T1 first;
     private final T2 second;
     private final T3 third;
     private final T4 fourth;
 
     public Tuple4(T1 first, T2 second, T3 third, T4 fourth) {
+        super(first, second, third, fourth);
+
         this.first = first;
         this.second = second;
         this.third = third;

http://git-wip-us.apache.org/repos/asf/groovy/blob/42ccfc7b/src/main/groovy/lang/Tuple5.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple5.java b/src/main/groovy/lang/Tuple5.java
index c83d792..ea61507 100644
--- a/src/main/groovy/lang/Tuple5.java
+++ b/src/main/groovy/lang/Tuple5.java
@@ -24,7 +24,7 @@ package groovy.lang;
  *
  * @since 2.5.0
  */
-public class Tuple5<T1, T2, T3, T4, T5> extends AbstractTuple {
+public class Tuple5<T1, T2, T3, T4, T5> extends Tuple {
     private final T1 first;
     private final T2 second;
     private final T3 third;
@@ -32,6 +32,8 @@ public class Tuple5<T1, T2, T3, T4, T5> extends AbstractTuple {
     private final T5 fifth;
 
     public Tuple5(T1 first, T2 second, T3 third, T4 fourth, T5 fifth) {
+        super(first, second, third, fourth, fifth);
+
         this.first = first;
         this.second = second;
         this.third = third;

http://git-wip-us.apache.org/repos/asf/groovy/blob/42ccfc7b/src/main/groovy/lang/Tuple6.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple6.java b/src/main/groovy/lang/Tuple6.java
index 9dce3fb..6982aa2 100644
--- a/src/main/groovy/lang/Tuple6.java
+++ b/src/main/groovy/lang/Tuple6.java
@@ -24,7 +24,7 @@ package groovy.lang;
  *
  * @since 2.5.0
  */
-public class Tuple6<T1, T2, T3, T4, T5, T6> extends AbstractTuple {
+public class Tuple6<T1, T2, T3, T4, T5, T6> extends Tuple {
     private final T1 first;
     private final T2 second;
     private final T3 third;
@@ -33,6 +33,8 @@ public class Tuple6<T1, T2, T3, T4, T5, T6> extends AbstractTuple {
     private final T6 sixth;
 
     public Tuple6(T1 first, T2 second, T3 third, T4 fourth, T5 fifth, T6 sixth) {
+        super(first, second, third, fourth, fifth, sixth);
+
         this.first = first;
         this.second = second;
         this.third = third;

http://git-wip-us.apache.org/repos/asf/groovy/blob/42ccfc7b/src/main/groovy/lang/Tuple7.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple7.java b/src/main/groovy/lang/Tuple7.java
index c799335..126c215 100644
--- a/src/main/groovy/lang/Tuple7.java
+++ b/src/main/groovy/lang/Tuple7.java
@@ -24,7 +24,7 @@ package groovy.lang;
  *
  * @since 2.5.0
  */
-public class Tuple7<T1, T2, T3, T4, T5, T6, T7> extends AbstractTuple {
+public class Tuple7<T1, T2, T3, T4, T5, T6, T7> extends Tuple {
     private final T1 first;
     private final T2 second;
     private final T3 third;
@@ -34,6 +34,8 @@ public class Tuple7<T1, T2, T3, T4, T5, T6, T7> extends AbstractTuple {
     private final T7 seventh;
 
     public Tuple7(T1 first, T2 second, T3 third, T4 fourth, T5 fifth, T6 sixth, T7 seventh) {
+        super(first, second, third, fourth, fifth, sixth, seventh);
+
         this.first = first;
         this.second = second;
         this.third = third;

http://git-wip-us.apache.org/repos/asf/groovy/blob/42ccfc7b/src/main/groovy/lang/Tuple8.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple8.java b/src/main/groovy/lang/Tuple8.java
index b95ea83..1881213 100644
--- a/src/main/groovy/lang/Tuple8.java
+++ b/src/main/groovy/lang/Tuple8.java
@@ -24,7 +24,7 @@ package groovy.lang;
  *
  * @since 2.5.0
  */
-public class Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> extends AbstractTuple {
+public class Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> extends Tuple {
     private final T1 first;
     private final T2 second;
     private final T3 third;
@@ -35,6 +35,8 @@ public class Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> extends AbstractTuple {
     private final T8 eighth;
 
     public Tuple8(T1 first, T2 second, T3 third, T4 fourth, T5 fifth, T6 sixth, T7 seventh, T8 eighth) {
+        super(first, second, third, fourth, fifth, sixth, seventh, eighth);
+
         this.first = first;
         this.second = second;
         this.third = third;

http://git-wip-us.apache.org/repos/asf/groovy/blob/42ccfc7b/src/main/groovy/lang/Tuple9.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple9.java b/src/main/groovy/lang/Tuple9.java
index 04fc0aa..7d48073 100644
--- a/src/main/groovy/lang/Tuple9.java
+++ b/src/main/groovy/lang/Tuple9.java
@@ -25,7 +25,7 @@ package groovy.lang;
  *
  * @since 2.5.0
  */
-public class Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> extends AbstractTuple {
+public class Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> extends Tuple {
     private final T1 first;
     private final T2 second;
     private final T3 third;
@@ -37,6 +37,8 @@ public class Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> extends AbstractTuple {
     private final T9 ninth;
 
     public Tuple9(T1 first, T2 second, T3 third, T4 fourth, T5 fifth, T6 sixth, T7 seventh, T8 eighth, T9 ninth) {
+        super(first, second, third, fourth, fifth, sixth, seventh, eighth, ninth);
+
         this.first = first;
         this.second = second;
         this.third = third;


[2/2] groovy git commit: Add `subTuple` method

Posted by su...@apache.org.
Add `subTuple` method

(cherry picked from commit c9d8716)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/57c221ee
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/57c221ee
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/57c221ee

Branch: refs/heads/GROOVY_2_6_X
Commit: 57c221ee673cd01874fc603021e886eb200f02c9
Parents: 42ccfc7
Author: sunlan <su...@apache.org>
Authored: Sat Sep 16 16:10:16 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Sep 16 16:43:03 2017 +0800

----------------------------------------------------------------------
 src/main/groovy/lang/Tuple.java     |   4 +
 src/test/groovy/lang/TupleTest.java | 214 +++++++++++++++++++++++++++++++
 2 files changed, 218 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/57c221ee/src/main/groovy/lang/Tuple.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/lang/Tuple.java b/src/main/groovy/lang/Tuple.java
index 36b04cb..38d835d 100644
--- a/src/main/groovy/lang/Tuple.java
+++ b/src/main/groovy/lang/Tuple.java
@@ -50,4 +50,8 @@ public class Tuple<E> extends AbstractTuple<E> {
         System.arraycopy(contents, fromIndex, newContent, 0, size);
         return new Tuple<>(newContent);
     }
+
+    public Tuple<E> subTuple(int fromIndex, int toIndex) {
+        return (Tuple<E>) subList(fromIndex, toIndex);
+    }
 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/57c221ee/src/test/groovy/lang/TupleTest.java
----------------------------------------------------------------------
diff --git a/src/test/groovy/lang/TupleTest.java b/src/test/groovy/lang/TupleTest.java
index 2e88659..19f07b7 100644
--- a/src/test/groovy/lang/TupleTest.java
+++ b/src/test/groovy/lang/TupleTest.java
@@ -68,6 +68,14 @@ public class TupleTest extends TestCase {
         assertEquals("size", 1, s.size());
     }
 
+    public void testSubTuple() {
+        Tuple s = t.subTuple(1, 2);
+
+        assertTrue("is a Tuple", s instanceof Tuple);
+
+        assertEquals("size", 1, s.size());
+    }
+
     public void testHashCodeAndEquals() {
         Tuple a = new Tuple(new Object[]{"a", "b", "c"});
         Tuple b = new Tuple(new Object[]{"a", "b", "c"});
@@ -93,4 +101,210 @@ public class TupleTest extends TestCase {
     public void testIterator() {
     }
 
+    public void testTuple1() {
+        Tuple1<Integer> t = new Tuple1<>(1);
+
+        assertEquals(1, t.size());
+
+        assertEquals(new Integer(1), t.getFirst());
+        assertEquals(1, t.get(0));
+
+        assertEquals(t, t.subTuple(0, t.size()));
+    }
+
+    public void testTuple2() {
+        Tuple2<Integer, Integer> t = new Tuple2<>(1, 2);
+
+        assertEquals(2, t.size());
+
+        assertEquals(new Integer(1), t.getFirst());
+        assertEquals(1, t.get(0));
+
+        assertEquals(new Integer(2), t.getSecond());
+        assertEquals(2, t.get(1));
+
+        assertEquals(t, t.subTuple(0, t.size()));
+    }
+
+    public void testTuple3() {
+        Tuple3<Integer, Integer, Integer> t = new Tuple3<>(1, 2, 3);
+
+        assertEquals(3, t.size());
+
+        assertEquals(new Integer(1), t.getFirst());
+        assertEquals(1, t.get(0));
+
+        assertEquals(new Integer(2), t.getSecond());
+        assertEquals(2, t.get(1));
+
+        assertEquals(new Integer(3), t.getThird());
+        assertEquals(3, t.get(2));
+
+        assertEquals(t, t.subTuple(0, t.size()));
+    }
+
+    public void testTuple4() {
+        Tuple4<Integer, Integer, Integer, Integer> t = new Tuple4<>(1, 2, 3, 4);
+
+        assertEquals(4, t.size());
+
+        assertEquals(new Integer(1), t.getFirst());
+        assertEquals(1, t.get(0));
+
+        assertEquals(new Integer(2), t.getSecond());
+        assertEquals(2, t.get(1));
+
+        assertEquals(new Integer(3), t.getThird());
+        assertEquals(3, t.get(2));
+
+        assertEquals(new Integer(4), t.getFourth());
+        assertEquals(4, t.get(3));
+
+        assertEquals(t, t.subTuple(0, t.size()));
+    }
+
+    public void testTuple5() {
+        Tuple5<Integer, Integer, Integer, Integer, Integer> t = new Tuple5<>(1, 2, 3, 4, 5);
+
+        assertEquals(5, t.size());
+
+        assertEquals(new Integer(1), t.getFirst());
+        assertEquals(1, t.get(0));
+
+        assertEquals(new Integer(2), t.getSecond());
+        assertEquals(2, t.get(1));
+
+        assertEquals(new Integer(3), t.getThird());
+        assertEquals(3, t.get(2));
+
+        assertEquals(new Integer(4), t.getFourth());
+        assertEquals(4, t.get(3));
+
+        assertEquals(new Integer(5), t.getFifth());
+        assertEquals(5, t.get(4));
+
+        assertEquals(t, t.subTuple(0, t.size()));
+    }
+
+    public void testTuple6() {
+        Tuple6<Integer, Integer, Integer, Integer, Integer, Integer> t = new Tuple6<>(1, 2, 3, 4, 5, 6);
+
+        assertEquals(6, t.size());
+
+        assertEquals(new Integer(1), t.getFirst());
+        assertEquals(1, t.get(0));
+
+        assertEquals(new Integer(2), t.getSecond());
+        assertEquals(2, t.get(1));
+
+        assertEquals(new Integer(3), t.getThird());
+        assertEquals(3, t.get(2));
+
+        assertEquals(new Integer(4), t.getFourth());
+        assertEquals(4, t.get(3));
+
+        assertEquals(new Integer(5), t.getFifth());
+        assertEquals(5, t.get(4));
+
+        assertEquals(new Integer(6), t.getSixth());
+        assertEquals(6, t.get(5));
+
+        assertEquals(t, t.subTuple(0, t.size()));
+    }
+
+    public void testTuple7() {
+        Tuple7<Integer, Integer, Integer, Integer, Integer, Integer, Integer> t = new Tuple7<>(1, 2, 3, 4, 5, 6, 7);
+
+        assertEquals(7, t.size());
+
+        assertEquals(new Integer(1), t.getFirst());
+        assertEquals(1, t.get(0));
+
+        assertEquals(new Integer(2), t.getSecond());
+        assertEquals(2, t.get(1));
+
+        assertEquals(new Integer(3), t.getThird());
+        assertEquals(3, t.get(2));
+
+        assertEquals(new Integer(4), t.getFourth());
+        assertEquals(4, t.get(3));
+
+        assertEquals(new Integer(5), t.getFifth());
+        assertEquals(5, t.get(4));
+
+        assertEquals(new Integer(6), t.getSixth());
+        assertEquals(6, t.get(5));
+
+        assertEquals(new Integer(7), t.getSeventh());
+        assertEquals(7, t.get(6));
+
+        assertEquals(t, t.subTuple(0, t.size()));
+    }
+
+    public void testTuple8() {
+        Tuple8<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer> t = new Tuple8<>(1, 2, 3, 4, 5, 6, 7, 8);
+
+        assertEquals(8, t.size());
+
+        assertEquals(new Integer(1), t.getFirst());
+        assertEquals(1, t.get(0));
+
+        assertEquals(new Integer(2), t.getSecond());
+        assertEquals(2, t.get(1));
+
+        assertEquals(new Integer(3), t.getThird());
+        assertEquals(3, t.get(2));
+
+        assertEquals(new Integer(4), t.getFourth());
+        assertEquals(4, t.get(3));
+
+        assertEquals(new Integer(5), t.getFifth());
+        assertEquals(5, t.get(4));
+
+        assertEquals(new Integer(6), t.getSixth());
+        assertEquals(6, t.get(5));
+
+        assertEquals(new Integer(7), t.getSeventh());
+        assertEquals(7, t.get(6));
+
+        assertEquals(new Integer(8), t.getEighth());
+        assertEquals(8, t.get(7));
+
+        assertEquals(t, t.subTuple(0, t.size()));
+    }
+
+    public void testTuple9() {
+        Tuple9<Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer> t = new Tuple9<>(1, 2, 3, 4, 5, 6, 7, 8, 9);
+
+        assertEquals(9, t.size());
+
+        assertEquals(new Integer(1), t.getFirst());
+        assertEquals(1, t.get(0));
+
+        assertEquals(new Integer(2), t.getSecond());
+        assertEquals(2, t.get(1));
+
+        assertEquals(new Integer(3), t.getThird());
+        assertEquals(3, t.get(2));
+
+        assertEquals(new Integer(4), t.getFourth());
+        assertEquals(4, t.get(3));
+
+        assertEquals(new Integer(5), t.getFifth());
+        assertEquals(5, t.get(4));
+
+        assertEquals(new Integer(6), t.getSixth());
+        assertEquals(6, t.get(5));
+
+        assertEquals(new Integer(7), t.getSeventh());
+        assertEquals(7, t.get(6));
+
+        assertEquals(new Integer(8), t.getEighth());
+        assertEquals(8, t.get(7));
+
+        assertEquals(new Integer(9), t.getNinth());
+        assertEquals(9, t.get(8));
+
+        assertEquals(t, t.subTuple(0, t.size()));
+    }
 }