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()));
+ }
}