http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple25.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple25.java 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple25.java
new file mode 100644
index 0000000..901b838
--- /dev/null
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple25.java
@@ -0,0 +1,514 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple;
+
+import org.apache.flink.util.StringUtils;
+
+/**
+ * A tuple with 25 fields. Tuples are strongly typed; each field may be of a 
separate type.
+ * The fields of the tuple can be accessed directly as public fields (f0, f1, 
...) or via their position
+ * through the {@link #getField(int)} method. The tuple field positions start 
at zero.
+ * <p>
+ * Tuples are mutable types, meaning that their fields can be re-assigned. 
This allows functions that work
+ * with Tuples to reuse objects in order to reduce pressure on the garbage 
collector.
+ *
+ * @see Tuple
+ *
+ * @param <T0> The type of field 0
+ * @param <T1> The type of field 1
+ * @param <T2> The type of field 2
+ * @param <T3> The type of field 3
+ * @param <T4> The type of field 4
+ * @param <T5> The type of field 5
+ * @param <T6> The type of field 6
+ * @param <T7> The type of field 7
+ * @param <T8> The type of field 8
+ * @param <T9> The type of field 9
+ * @param <T10> The type of field 10
+ * @param <T11> The type of field 11
+ * @param <T12> The type of field 12
+ * @param <T13> The type of field 13
+ * @param <T14> The type of field 14
+ * @param <T15> The type of field 15
+ * @param <T16> The type of field 16
+ * @param <T17> The type of field 17
+ * @param <T18> The type of field 18
+ * @param <T19> The type of field 19
+ * @param <T20> The type of field 20
+ * @param <T21> The type of field 21
+ * @param <T22> The type of field 22
+ * @param <T23> The type of field 23
+ * @param <T24> The type of field 24
+ */
+public class Tuple25<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> extends Tuple {
+
+       private static final long serialVersionUID = 1L;
+
+       /** Field 0 of the tuple. */
+       public T0 f0;
+       /** Field 1 of the tuple. */
+       public T1 f1;
+       /** Field 2 of the tuple. */
+       public T2 f2;
+       /** Field 3 of the tuple. */
+       public T3 f3;
+       /** Field 4 of the tuple. */
+       public T4 f4;
+       /** Field 5 of the tuple. */
+       public T5 f5;
+       /** Field 6 of the tuple. */
+       public T6 f6;
+       /** Field 7 of the tuple. */
+       public T7 f7;
+       /** Field 8 of the tuple. */
+       public T8 f8;
+       /** Field 9 of the tuple. */
+       public T9 f9;
+       /** Field 10 of the tuple. */
+       public T10 f10;
+       /** Field 11 of the tuple. */
+       public T11 f11;
+       /** Field 12 of the tuple. */
+       public T12 f12;
+       /** Field 13 of the tuple. */
+       public T13 f13;
+       /** Field 14 of the tuple. */
+       public T14 f14;
+       /** Field 15 of the tuple. */
+       public T15 f15;
+       /** Field 16 of the tuple. */
+       public T16 f16;
+       /** Field 17 of the tuple. */
+       public T17 f17;
+       /** Field 18 of the tuple. */
+       public T18 f18;
+       /** Field 19 of the tuple. */
+       public T19 f19;
+       /** Field 20 of the tuple. */
+       public T20 f20;
+       /** Field 21 of the tuple. */
+       public T21 f21;
+       /** Field 22 of the tuple. */
+       public T22 f22;
+       /** Field 23 of the tuple. */
+       public T23 f23;
+       /** Field 24 of the tuple. */
+       public T24 f24;
+
+       /**
+        * Creates a new tuple where all fields are null.
+        */
+       public Tuple25() {}
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        * @param value6 The value for field 6
+        * @param value7 The value for field 7
+        * @param value8 The value for field 8
+        * @param value9 The value for field 9
+        * @param value10 The value for field 10
+        * @param value11 The value for field 11
+        * @param value12 The value for field 12
+        * @param value13 The value for field 13
+        * @param value14 The value for field 14
+        * @param value15 The value for field 15
+        * @param value16 The value for field 16
+        * @param value17 The value for field 17
+        * @param value18 The value for field 18
+        * @param value19 The value for field 19
+        * @param value20 The value for field 20
+        * @param value21 The value for field 21
+        * @param value22 The value for field 22
+        * @param value23 The value for field 23
+        * @param value24 The value for field 24
+        */
+       public Tuple25(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, 
T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 
value11, T12 value12, T13 value13, T14 value14, T15 value15, T16 value16, T17 
value17, T18 value18, T19 value19, T20 value20, T21 value21, T22 value22, T23 
value23, T24 value24) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+               this.f6 = value6;
+               this.f7 = value7;
+               this.f8 = value8;
+               this.f9 = value9;
+               this.f10 = value10;
+               this.f11 = value11;
+               this.f12 = value12;
+               this.f13 = value13;
+               this.f14 = value14;
+               this.f15 = value15;
+               this.f16 = value16;
+               this.f17 = value17;
+               this.f18 = value18;
+               this.f19 = value19;
+               this.f20 = value20;
+               this.f21 = value21;
+               this.f22 = value22;
+               this.f23 = value23;
+               this.f24 = value24;
+       }
+
+       @Override
+       public int getArity() { return 25; }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> T getField(int pos) {
+               switch(pos) {
+                       case 0: return (T) this.f0;
+                       case 1: return (T) this.f1;
+                       case 2: return (T) this.f2;
+                       case 3: return (T) this.f3;
+                       case 4: return (T) this.f4;
+                       case 5: return (T) this.f5;
+                       case 6: return (T) this.f6;
+                       case 7: return (T) this.f7;
+                       case 8: return (T) this.f8;
+                       case 9: return (T) this.f9;
+                       case 10: return (T) this.f10;
+                       case 11: return (T) this.f11;
+                       case 12: return (T) this.f12;
+                       case 13: return (T) this.f13;
+                       case 14: return (T) this.f14;
+                       case 15: return (T) this.f15;
+                       case 16: return (T) this.f16;
+                       case 17: return (T) this.f17;
+                       case 18: return (T) this.f18;
+                       case 19: return (T) this.f19;
+                       case 20: return (T) this.f20;
+                       case 21: return (T) this.f21;
+                       case 22: return (T) this.f22;
+                       case 23: return (T) this.f23;
+                       case 24: return (T) this.f24;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> void setField(T value, int pos) {
+               switch(pos) {
+                       case 0:
+                               this.f0 = (T0) value;
+                               break;
+                       case 1:
+                               this.f1 = (T1) value;
+                               break;
+                       case 2:
+                               this.f2 = (T2) value;
+                               break;
+                       case 3:
+                               this.f3 = (T3) value;
+                               break;
+                       case 4:
+                               this.f4 = (T4) value;
+                               break;
+                       case 5:
+                               this.f5 = (T5) value;
+                               break;
+                       case 6:
+                               this.f6 = (T6) value;
+                               break;
+                       case 7:
+                               this.f7 = (T7) value;
+                               break;
+                       case 8:
+                               this.f8 = (T8) value;
+                               break;
+                       case 9:
+                               this.f9 = (T9) value;
+                               break;
+                       case 10:
+                               this.f10 = (T10) value;
+                               break;
+                       case 11:
+                               this.f11 = (T11) value;
+                               break;
+                       case 12:
+                               this.f12 = (T12) value;
+                               break;
+                       case 13:
+                               this.f13 = (T13) value;
+                               break;
+                       case 14:
+                               this.f14 = (T14) value;
+                               break;
+                       case 15:
+                               this.f15 = (T15) value;
+                               break;
+                       case 16:
+                               this.f16 = (T16) value;
+                               break;
+                       case 17:
+                               this.f17 = (T17) value;
+                               break;
+                       case 18:
+                               this.f18 = (T18) value;
+                               break;
+                       case 19:
+                               this.f19 = (T19) value;
+                               break;
+                       case 20:
+                               this.f20 = (T20) value;
+                               break;
+                       case 21:
+                               this.f21 = (T21) value;
+                               break;
+                       case 22:
+                               this.f22 = (T22) value;
+                               break;
+                       case 23:
+                               this.f23 = (T23) value;
+                               break;
+                       case 24:
+                               this.f24 = (T24) value;
+                               break;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       /**
+        * Sets new values to all fields of the tuple.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        * @param value6 The value for field 6
+        * @param value7 The value for field 7
+        * @param value8 The value for field 8
+        * @param value9 The value for field 9
+        * @param value10 The value for field 10
+        * @param value11 The value for field 11
+        * @param value12 The value for field 12
+        * @param value13 The value for field 13
+        * @param value14 The value for field 14
+        * @param value15 The value for field 15
+        * @param value16 The value for field 16
+        * @param value17 The value for field 17
+        * @param value18 The value for field 18
+        * @param value19 The value for field 19
+        * @param value20 The value for field 20
+        * @param value21 The value for field 21
+        * @param value22 The value for field 22
+        * @param value23 The value for field 23
+        * @param value24 The value for field 24
+        */
+       public void setFields(T0 value0, T1 value1, T2 value2, T3 value3, T4 
value4, T5 value5, T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 
value11, T12 value12, T13 value13, T14 value14, T15 value15, T16 value16, T17 
value17, T18 value18, T19 value19, T20 value20, T21 value21, T22 value22, T23 
value23, T24 value24) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+               this.f6 = value6;
+               this.f7 = value7;
+               this.f8 = value8;
+               this.f9 = value9;
+               this.f10 = value10;
+               this.f11 = value11;
+               this.f12 = value12;
+               this.f13 = value13;
+               this.f14 = value14;
+               this.f15 = value15;
+               this.f16 = value16;
+               this.f17 = value17;
+               this.f18 = value18;
+               this.f19 = value19;
+               this.f20 = value20;
+               this.f21 = value21;
+               this.f22 = value22;
+               this.f23 = value23;
+               this.f24 = value24;
+       }
+
+
+       // 
-------------------------------------------------------------------------------------------------
+       // standard utilities
+       // 
-------------------------------------------------------------------------------------------------
+
+       /**
+        * Creates a string representation of the tuple in the form
+        * (f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, 
f15, f16, f17, f18, f19, f20, f21, f22, f23, f24),
+        * where the individual fields are the value returned by calling {@link 
Object#toString} on that field.
+        * @return The string representation of the tuple.
+        */
+       @Override
+       public String toString() {
+               return "(" + StringUtils.arrayAwareToString(this.f0)
+                       + "," + StringUtils.arrayAwareToString(this.f1)
+                       + "," + StringUtils.arrayAwareToString(this.f2)
+                       + "," + StringUtils.arrayAwareToString(this.f3)
+                       + "," + StringUtils.arrayAwareToString(this.f4)
+                       + "," + StringUtils.arrayAwareToString(this.f5)
+                       + "," + StringUtils.arrayAwareToString(this.f6)
+                       + "," + StringUtils.arrayAwareToString(this.f7)
+                       + "," + StringUtils.arrayAwareToString(this.f8)
+                       + "," + StringUtils.arrayAwareToString(this.f9)
+                       + "," + StringUtils.arrayAwareToString(this.f10)
+                       + "," + StringUtils.arrayAwareToString(this.f11)
+                       + "," + StringUtils.arrayAwareToString(this.f12)
+                       + "," + StringUtils.arrayAwareToString(this.f13)
+                       + "," + StringUtils.arrayAwareToString(this.f14)
+                       + "," + StringUtils.arrayAwareToString(this.f15)
+                       + "," + StringUtils.arrayAwareToString(this.f16)
+                       + "," + StringUtils.arrayAwareToString(this.f17)
+                       + "," + StringUtils.arrayAwareToString(this.f18)
+                       + "," + StringUtils.arrayAwareToString(this.f19)
+                       + "," + StringUtils.arrayAwareToString(this.f20)
+                       + "," + StringUtils.arrayAwareToString(this.f21)
+                       + "," + StringUtils.arrayAwareToString(this.f22)
+                       + "," + StringUtils.arrayAwareToString(this.f23)
+                       + "," + StringUtils.arrayAwareToString(this.f24)
+                       + ")";
+       }
+
+       /**
+        * Deep equality for tuples by calling equals() on the tuple members
+        * @param o the object checked for equality
+        * @return true if this is equal to o.
+        */
+       @Override
+       public boolean equals(Object o) {
+               if(this == o) { return true; }
+               if (!(o instanceof Tuple25)) { return false; }
+               @SuppressWarnings("rawtypes")
+               Tuple25 tuple = (Tuple25) o;
+               if (f0 != null ? !f0.equals(tuple.f0) : tuple.f0 != null) { 
return false; }
+               if (f1 != null ? !f1.equals(tuple.f1) : tuple.f1 != null) { 
return false; }
+               if (f2 != null ? !f2.equals(tuple.f2) : tuple.f2 != null) { 
return false; }
+               if (f3 != null ? !f3.equals(tuple.f3) : tuple.f3 != null) { 
return false; }
+               if (f4 != null ? !f4.equals(tuple.f4) : tuple.f4 != null) { 
return false; }
+               if (f5 != null ? !f5.equals(tuple.f5) : tuple.f5 != null) { 
return false; }
+               if (f6 != null ? !f6.equals(tuple.f6) : tuple.f6 != null) { 
return false; }
+               if (f7 != null ? !f7.equals(tuple.f7) : tuple.f7 != null) { 
return false; }
+               if (f8 != null ? !f8.equals(tuple.f8) : tuple.f8 != null) { 
return false; }
+               if (f9 != null ? !f9.equals(tuple.f9) : tuple.f9 != null) { 
return false; }
+               if (f10 != null ? !f10.equals(tuple.f10) : tuple.f10 != null) { 
return false; }
+               if (f11 != null ? !f11.equals(tuple.f11) : tuple.f11 != null) { 
return false; }
+               if (f12 != null ? !f12.equals(tuple.f12) : tuple.f12 != null) { 
return false; }
+               if (f13 != null ? !f13.equals(tuple.f13) : tuple.f13 != null) { 
return false; }
+               if (f14 != null ? !f14.equals(tuple.f14) : tuple.f14 != null) { 
return false; }
+               if (f15 != null ? !f15.equals(tuple.f15) : tuple.f15 != null) { 
return false; }
+               if (f16 != null ? !f16.equals(tuple.f16) : tuple.f16 != null) { 
return false; }
+               if (f17 != null ? !f17.equals(tuple.f17) : tuple.f17 != null) { 
return false; }
+               if (f18 != null ? !f18.equals(tuple.f18) : tuple.f18 != null) { 
return false; }
+               if (f19 != null ? !f19.equals(tuple.f19) : tuple.f19 != null) { 
return false; }
+               if (f20 != null ? !f20.equals(tuple.f20) : tuple.f20 != null) { 
return false; }
+               if (f21 != null ? !f21.equals(tuple.f21) : tuple.f21 != null) { 
return false; }
+               if (f22 != null ? !f22.equals(tuple.f22) : tuple.f22 != null) { 
return false; }
+               if (f23 != null ? !f23.equals(tuple.f23) : tuple.f23 != null) { 
return false; }
+               if (f24 != null ? !f24.equals(tuple.f24) : tuple.f24 != null) { 
return false; }
+               return true;
+       }
+
+       @Override
+       public int hashCode() {
+               int result = f0 != null ? f0.hashCode() : 0;
+               result = 31 * result + (f1 != null ? f1.hashCode() : 0);
+               result = 31 * result + (f2 != null ? f2.hashCode() : 0);
+               result = 31 * result + (f3 != null ? f3.hashCode() : 0);
+               result = 31 * result + (f4 != null ? f4.hashCode() : 0);
+               result = 31 * result + (f5 != null ? f5.hashCode() : 0);
+               result = 31 * result + (f6 != null ? f6.hashCode() : 0);
+               result = 31 * result + (f7 != null ? f7.hashCode() : 0);
+               result = 31 * result + (f8 != null ? f8.hashCode() : 0);
+               result = 31 * result + (f9 != null ? f9.hashCode() : 0);
+               result = 31 * result + (f10 != null ? f10.hashCode() : 0);
+               result = 31 * result + (f11 != null ? f11.hashCode() : 0);
+               result = 31 * result + (f12 != null ? f12.hashCode() : 0);
+               result = 31 * result + (f13 != null ? f13.hashCode() : 0);
+               result = 31 * result + (f14 != null ? f14.hashCode() : 0);
+               result = 31 * result + (f15 != null ? f15.hashCode() : 0);
+               result = 31 * result + (f16 != null ? f16.hashCode() : 0);
+               result = 31 * result + (f17 != null ? f17.hashCode() : 0);
+               result = 31 * result + (f18 != null ? f18.hashCode() : 0);
+               result = 31 * result + (f19 != null ? f19.hashCode() : 0);
+               result = 31 * result + (f20 != null ? f20.hashCode() : 0);
+               result = 31 * result + (f21 != null ? f21.hashCode() : 0);
+               result = 31 * result + (f22 != null ? f22.hashCode() : 0);
+               result = 31 * result + (f23 != null ? f23.hashCode() : 0);
+               result = 31 * result + (f24 != null ? f24.hashCode() : 0);
+               return result;
+       }
+
+       /**
+       * Shallow tuple copy.
+       * @return A new Tuple with the same fields as this.
+       */
+       @Override
+       @SuppressWarnings("unchecked")
+       public 
Tuple25<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>
 copy(){ 
+               return new 
Tuple25<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>(this.f0,
+                       this.f1,
+                       this.f2,
+                       this.f3,
+                       this.f4,
+                       this.f5,
+                       this.f6,
+                       this.f7,
+                       this.f8,
+                       this.f9,
+                       this.f10,
+                       this.f11,
+                       this.f12,
+                       this.f13,
+                       this.f14,
+                       this.f15,
+                       this.f16,
+                       this.f17,
+                       this.f18,
+                       this.f19,
+                       this.f20,
+                       this.f21,
+                       this.f22,
+                       this.f23,
+                       this.f24);
+       }
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        * This is more convenient than using the constructor, because the 
compiler can
+        * infer the generic type arguments implicitly. For example:
+        * {@code Tuple3.of(n, x, s)}
+        * instead of
+        * {@code new Tuple3<Integer, Double, String>(n, x, s)}
+        */
+       public static 
<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>
 
Tuple25<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>
 of(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 
value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12, 
T13 value13, T14 value14, T15 value15, T16 value16, T17 value17, T18 value18, 
T19 value19, T20 value20, T21 value21, T22 value22, T23 value23, T24 value24) {
+               return new 
Tuple25<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>(value0,
 value1, value2, value3, value4, value5, value6, value7, value8, value9, 
value10, value11, value12, value13, value14, value15, value16, value17, 
value18, value19, value20, value21, value22, value23, value24);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple3.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple3.java 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple3.java
new file mode 100644
index 0000000..3a46222
--- /dev/null
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple3.java
@@ -0,0 +1,184 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple;
+
+import org.apache.flink.util.StringUtils;
+
+/**
+ * A tuple with 3 fields. Tuples are strongly typed; each field may be of a 
separate type.
+ * The fields of the tuple can be accessed directly as public fields (f0, f1, 
...) or via their position
+ * through the {@link #getField(int)} method. The tuple field positions start 
at zero.
+ * <p>
+ * Tuples are mutable types, meaning that their fields can be re-assigned. 
This allows functions that work
+ * with Tuples to reuse objects in order to reduce pressure on the garbage 
collector.
+ *
+ * @see Tuple
+ *
+ * @param <T0> The type of field 0
+ * @param <T1> The type of field 1
+ * @param <T2> The type of field 2
+ */
+public class Tuple3<T0, T1, T2> extends Tuple {
+
+       private static final long serialVersionUID = 1L;
+
+       /** Field 0 of the tuple. */
+       public T0 f0;
+       /** Field 1 of the tuple. */
+       public T1 f1;
+       /** Field 2 of the tuple. */
+       public T2 f2;
+
+       /**
+        * Creates a new tuple where all fields are null.
+        */
+       public Tuple3() {}
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        */
+       public Tuple3(T0 value0, T1 value1, T2 value2) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+       }
+
+       @Override
+       public int getArity() { return 3; }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> T getField(int pos) {
+               switch(pos) {
+                       case 0: return (T) this.f0;
+                       case 1: return (T) this.f1;
+                       case 2: return (T) this.f2;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> void setField(T value, int pos) {
+               switch(pos) {
+                       case 0:
+                               this.f0 = (T0) value;
+                               break;
+                       case 1:
+                               this.f1 = (T1) value;
+                               break;
+                       case 2:
+                               this.f2 = (T2) value;
+                               break;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       /**
+        * Sets new values to all fields of the tuple.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        */
+       public void setFields(T0 value0, T1 value1, T2 value2) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+       }
+
+
+       // 
-------------------------------------------------------------------------------------------------
+       // standard utilities
+       // 
-------------------------------------------------------------------------------------------------
+
+       /**
+        * Creates a string representation of the tuple in the form
+        * (f0, f1, f2),
+        * where the individual fields are the value returned by calling {@link 
Object#toString} on that field.
+        * @return The string representation of the tuple.
+        */
+       @Override
+       public String toString() {
+               return "(" + StringUtils.arrayAwareToString(this.f0)
+                       + "," + StringUtils.arrayAwareToString(this.f1)
+                       + "," + StringUtils.arrayAwareToString(this.f2)
+                       + ")";
+       }
+
+       /**
+        * Deep equality for tuples by calling equals() on the tuple members
+        * @param o the object checked for equality
+        * @return true if this is equal to o.
+        */
+       @Override
+       public boolean equals(Object o) {
+               if(this == o) { return true; }
+               if (!(o instanceof Tuple3)) { return false; }
+               @SuppressWarnings("rawtypes")
+               Tuple3 tuple = (Tuple3) o;
+               if (f0 != null ? !f0.equals(tuple.f0) : tuple.f0 != null) { 
return false; }
+               if (f1 != null ? !f1.equals(tuple.f1) : tuple.f1 != null) { 
return false; }
+               if (f2 != null ? !f2.equals(tuple.f2) : tuple.f2 != null) { 
return false; }
+               return true;
+       }
+
+       @Override
+       public int hashCode() {
+               int result = f0 != null ? f0.hashCode() : 0;
+               result = 31 * result + (f1 != null ? f1.hashCode() : 0);
+               result = 31 * result + (f2 != null ? f2.hashCode() : 0);
+               return result;
+       }
+
+       /**
+       * Shallow tuple copy.
+       * @return A new Tuple with the same fields as this.
+       */
+       @Override
+       @SuppressWarnings("unchecked")
+       public Tuple3<T0,T1,T2> copy(){ 
+               return new Tuple3<T0,T1,T2>(this.f0,
+                       this.f1,
+                       this.f2);
+       }
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        * This is more convenient than using the constructor, because the 
compiler can
+        * infer the generic type arguments implicitly. For example:
+        * {@code Tuple3.of(n, x, s)}
+        * instead of
+        * {@code new Tuple3<Integer, Double, String>(n, x, s)}
+        */
+       public static <T0,T1,T2> Tuple3<T0,T1,T2> of(T0 value0, T1 value1, T2 
value2) {
+               return new Tuple3<T0,T1,T2>(value0, value1, value2);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple4.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple4.java 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple4.java
new file mode 100644
index 0000000..0556ad4
--- /dev/null
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple4.java
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple;
+
+import org.apache.flink.util.StringUtils;
+
+/**
+ * A tuple with 4 fields. Tuples are strongly typed; each field may be of a 
separate type.
+ * The fields of the tuple can be accessed directly as public fields (f0, f1, 
...) or via their position
+ * through the {@link #getField(int)} method. The tuple field positions start 
at zero.
+ * <p>
+ * Tuples are mutable types, meaning that their fields can be re-assigned. 
This allows functions that work
+ * with Tuples to reuse objects in order to reduce pressure on the garbage 
collector.
+ *
+ * @see Tuple
+ *
+ * @param <T0> The type of field 0
+ * @param <T1> The type of field 1
+ * @param <T2> The type of field 2
+ * @param <T3> The type of field 3
+ */
+public class Tuple4<T0, T1, T2, T3> extends Tuple {
+
+       private static final long serialVersionUID = 1L;
+
+       /** Field 0 of the tuple. */
+       public T0 f0;
+       /** Field 1 of the tuple. */
+       public T1 f1;
+       /** Field 2 of the tuple. */
+       public T2 f2;
+       /** Field 3 of the tuple. */
+       public T3 f3;
+
+       /**
+        * Creates a new tuple where all fields are null.
+        */
+       public Tuple4() {}
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        */
+       public Tuple4(T0 value0, T1 value1, T2 value2, T3 value3) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+       }
+
+       @Override
+       public int getArity() { return 4; }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> T getField(int pos) {
+               switch(pos) {
+                       case 0: return (T) this.f0;
+                       case 1: return (T) this.f1;
+                       case 2: return (T) this.f2;
+                       case 3: return (T) this.f3;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> void setField(T value, int pos) {
+               switch(pos) {
+                       case 0:
+                               this.f0 = (T0) value;
+                               break;
+                       case 1:
+                               this.f1 = (T1) value;
+                               break;
+                       case 2:
+                               this.f2 = (T2) value;
+                               break;
+                       case 3:
+                               this.f3 = (T3) value;
+                               break;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       /**
+        * Sets new values to all fields of the tuple.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        */
+       public void setFields(T0 value0, T1 value1, T2 value2, T3 value3) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+       }
+
+
+       // 
-------------------------------------------------------------------------------------------------
+       // standard utilities
+       // 
-------------------------------------------------------------------------------------------------
+
+       /**
+        * Creates a string representation of the tuple in the form
+        * (f0, f1, f2, f3),
+        * where the individual fields are the value returned by calling {@link 
Object#toString} on that field.
+        * @return The string representation of the tuple.
+        */
+       @Override
+       public String toString() {
+               return "(" + StringUtils.arrayAwareToString(this.f0)
+                       + "," + StringUtils.arrayAwareToString(this.f1)
+                       + "," + StringUtils.arrayAwareToString(this.f2)
+                       + "," + StringUtils.arrayAwareToString(this.f3)
+                       + ")";
+       }
+
+       /**
+        * Deep equality for tuples by calling equals() on the tuple members
+        * @param o the object checked for equality
+        * @return true if this is equal to o.
+        */
+       @Override
+       public boolean equals(Object o) {
+               if(this == o) { return true; }
+               if (!(o instanceof Tuple4)) { return false; }
+               @SuppressWarnings("rawtypes")
+               Tuple4 tuple = (Tuple4) o;
+               if (f0 != null ? !f0.equals(tuple.f0) : tuple.f0 != null) { 
return false; }
+               if (f1 != null ? !f1.equals(tuple.f1) : tuple.f1 != null) { 
return false; }
+               if (f2 != null ? !f2.equals(tuple.f2) : tuple.f2 != null) { 
return false; }
+               if (f3 != null ? !f3.equals(tuple.f3) : tuple.f3 != null) { 
return false; }
+               return true;
+       }
+
+       @Override
+       public int hashCode() {
+               int result = f0 != null ? f0.hashCode() : 0;
+               result = 31 * result + (f1 != null ? f1.hashCode() : 0);
+               result = 31 * result + (f2 != null ? f2.hashCode() : 0);
+               result = 31 * result + (f3 != null ? f3.hashCode() : 0);
+               return result;
+       }
+
+       /**
+       * Shallow tuple copy.
+       * @return A new Tuple with the same fields as this.
+       */
+       @Override
+       @SuppressWarnings("unchecked")
+       public Tuple4<T0,T1,T2,T3> copy(){ 
+               return new Tuple4<T0,T1,T2,T3>(this.f0,
+                       this.f1,
+                       this.f2,
+                       this.f3);
+       }
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        * This is more convenient than using the constructor, because the 
compiler can
+        * infer the generic type arguments implicitly. For example:
+        * {@code Tuple3.of(n, x, s)}
+        * instead of
+        * {@code new Tuple3<Integer, Double, String>(n, x, s)}
+        */
+       public static <T0,T1,T2,T3> Tuple4<T0,T1,T2,T3> of(T0 value0, T1 
value1, T2 value2, T3 value3) {
+               return new Tuple4<T0,T1,T2,T3>(value0, value1, value2, value3);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple5.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple5.java 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple5.java
new file mode 100644
index 0000000..15d3ea9
--- /dev/null
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple5.java
@@ -0,0 +1,214 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple;
+
+import org.apache.flink.util.StringUtils;
+
+/**
+ * A tuple with 5 fields. Tuples are strongly typed; each field may be of a 
separate type.
+ * The fields of the tuple can be accessed directly as public fields (f0, f1, 
...) or via their position
+ * through the {@link #getField(int)} method. The tuple field positions start 
at zero.
+ * <p>
+ * Tuples are mutable types, meaning that their fields can be re-assigned. 
This allows functions that work
+ * with Tuples to reuse objects in order to reduce pressure on the garbage 
collector.
+ *
+ * @see Tuple
+ *
+ * @param <T0> The type of field 0
+ * @param <T1> The type of field 1
+ * @param <T2> The type of field 2
+ * @param <T3> The type of field 3
+ * @param <T4> The type of field 4
+ */
+public class Tuple5<T0, T1, T2, T3, T4> extends Tuple {
+
+       private static final long serialVersionUID = 1L;
+
+       /** Field 0 of the tuple. */
+       public T0 f0;
+       /** Field 1 of the tuple. */
+       public T1 f1;
+       /** Field 2 of the tuple. */
+       public T2 f2;
+       /** Field 3 of the tuple. */
+       public T3 f3;
+       /** Field 4 of the tuple. */
+       public T4 f4;
+
+       /**
+        * Creates a new tuple where all fields are null.
+        */
+       public Tuple5() {}
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        */
+       public Tuple5(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+       }
+
+       @Override
+       public int getArity() { return 5; }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> T getField(int pos) {
+               switch(pos) {
+                       case 0: return (T) this.f0;
+                       case 1: return (T) this.f1;
+                       case 2: return (T) this.f2;
+                       case 3: return (T) this.f3;
+                       case 4: return (T) this.f4;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> void setField(T value, int pos) {
+               switch(pos) {
+                       case 0:
+                               this.f0 = (T0) value;
+                               break;
+                       case 1:
+                               this.f1 = (T1) value;
+                               break;
+                       case 2:
+                               this.f2 = (T2) value;
+                               break;
+                       case 3:
+                               this.f3 = (T3) value;
+                               break;
+                       case 4:
+                               this.f4 = (T4) value;
+                               break;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       /**
+        * Sets new values to all fields of the tuple.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        */
+       public void setFields(T0 value0, T1 value1, T2 value2, T3 value3, T4 
value4) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+       }
+
+
+       // 
-------------------------------------------------------------------------------------------------
+       // standard utilities
+       // 
-------------------------------------------------------------------------------------------------
+
+       /**
+        * Creates a string representation of the tuple in the form
+        * (f0, f1, f2, f3, f4),
+        * where the individual fields are the value returned by calling {@link 
Object#toString} on that field.
+        * @return The string representation of the tuple.
+        */
+       @Override
+       public String toString() {
+               return "(" + StringUtils.arrayAwareToString(this.f0)
+                       + "," + StringUtils.arrayAwareToString(this.f1)
+                       + "," + StringUtils.arrayAwareToString(this.f2)
+                       + "," + StringUtils.arrayAwareToString(this.f3)
+                       + "," + StringUtils.arrayAwareToString(this.f4)
+                       + ")";
+       }
+
+       /**
+        * Deep equality for tuples by calling equals() on the tuple members
+        * @param o the object checked for equality
+        * @return true if this is equal to o.
+        */
+       @Override
+       public boolean equals(Object o) {
+               if(this == o) { return true; }
+               if (!(o instanceof Tuple5)) { return false; }
+               @SuppressWarnings("rawtypes")
+               Tuple5 tuple = (Tuple5) o;
+               if (f0 != null ? !f0.equals(tuple.f0) : tuple.f0 != null) { 
return false; }
+               if (f1 != null ? !f1.equals(tuple.f1) : tuple.f1 != null) { 
return false; }
+               if (f2 != null ? !f2.equals(tuple.f2) : tuple.f2 != null) { 
return false; }
+               if (f3 != null ? !f3.equals(tuple.f3) : tuple.f3 != null) { 
return false; }
+               if (f4 != null ? !f4.equals(tuple.f4) : tuple.f4 != null) { 
return false; }
+               return true;
+       }
+
+       @Override
+       public int hashCode() {
+               int result = f0 != null ? f0.hashCode() : 0;
+               result = 31 * result + (f1 != null ? f1.hashCode() : 0);
+               result = 31 * result + (f2 != null ? f2.hashCode() : 0);
+               result = 31 * result + (f3 != null ? f3.hashCode() : 0);
+               result = 31 * result + (f4 != null ? f4.hashCode() : 0);
+               return result;
+       }
+
+       /**
+       * Shallow tuple copy.
+       * @return A new Tuple with the same fields as this.
+       */
+       @Override
+       @SuppressWarnings("unchecked")
+       public Tuple5<T0,T1,T2,T3,T4> copy(){ 
+               return new Tuple5<T0,T1,T2,T3,T4>(this.f0,
+                       this.f1,
+                       this.f2,
+                       this.f3,
+                       this.f4);
+       }
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        * This is more convenient than using the constructor, because the 
compiler can
+        * infer the generic type arguments implicitly. For example:
+        * {@code Tuple3.of(n, x, s)}
+        * instead of
+        * {@code new Tuple3<Integer, Double, String>(n, x, s)}
+        */
+       public static <T0,T1,T2,T3,T4> Tuple5<T0,T1,T2,T3,T4> of(T0 value0, T1 
value1, T2 value2, T3 value3, T4 value4) {
+               return new Tuple5<T0,T1,T2,T3,T4>(value0, value1, value2, 
value3, value4);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple6.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple6.java 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple6.java
new file mode 100644
index 0000000..1d45a26
--- /dev/null
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple6.java
@@ -0,0 +1,229 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple;
+
+import org.apache.flink.util.StringUtils;
+
+/**
+ * A tuple with 6 fields. Tuples are strongly typed; each field may be of a 
separate type.
+ * The fields of the tuple can be accessed directly as public fields (f0, f1, 
...) or via their position
+ * through the {@link #getField(int)} method. The tuple field positions start 
at zero.
+ * <p>
+ * Tuples are mutable types, meaning that their fields can be re-assigned. 
This allows functions that work
+ * with Tuples to reuse objects in order to reduce pressure on the garbage 
collector.
+ *
+ * @see Tuple
+ *
+ * @param <T0> The type of field 0
+ * @param <T1> The type of field 1
+ * @param <T2> The type of field 2
+ * @param <T3> The type of field 3
+ * @param <T4> The type of field 4
+ * @param <T5> The type of field 5
+ */
+public class Tuple6<T0, T1, T2, T3, T4, T5> extends Tuple {
+
+       private static final long serialVersionUID = 1L;
+
+       /** Field 0 of the tuple. */
+       public T0 f0;
+       /** Field 1 of the tuple. */
+       public T1 f1;
+       /** Field 2 of the tuple. */
+       public T2 f2;
+       /** Field 3 of the tuple. */
+       public T3 f3;
+       /** Field 4 of the tuple. */
+       public T4 f4;
+       /** Field 5 of the tuple. */
+       public T5 f5;
+
+       /**
+        * Creates a new tuple where all fields are null.
+        */
+       public Tuple6() {}
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        */
+       public Tuple6(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 
value5) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+       }
+
+       @Override
+       public int getArity() { return 6; }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> T getField(int pos) {
+               switch(pos) {
+                       case 0: return (T) this.f0;
+                       case 1: return (T) this.f1;
+                       case 2: return (T) this.f2;
+                       case 3: return (T) this.f3;
+                       case 4: return (T) this.f4;
+                       case 5: return (T) this.f5;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> void setField(T value, int pos) {
+               switch(pos) {
+                       case 0:
+                               this.f0 = (T0) value;
+                               break;
+                       case 1:
+                               this.f1 = (T1) value;
+                               break;
+                       case 2:
+                               this.f2 = (T2) value;
+                               break;
+                       case 3:
+                               this.f3 = (T3) value;
+                               break;
+                       case 4:
+                               this.f4 = (T4) value;
+                               break;
+                       case 5:
+                               this.f5 = (T5) value;
+                               break;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       /**
+        * Sets new values to all fields of the tuple.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        */
+       public void setFields(T0 value0, T1 value1, T2 value2, T3 value3, T4 
value4, T5 value5) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+       }
+
+
+       // 
-------------------------------------------------------------------------------------------------
+       // standard utilities
+       // 
-------------------------------------------------------------------------------------------------
+
+       /**
+        * Creates a string representation of the tuple in the form
+        * (f0, f1, f2, f3, f4, f5),
+        * where the individual fields are the value returned by calling {@link 
Object#toString} on that field.
+        * @return The string representation of the tuple.
+        */
+       @Override
+       public String toString() {
+               return "(" + StringUtils.arrayAwareToString(this.f0)
+                       + "," + StringUtils.arrayAwareToString(this.f1)
+                       + "," + StringUtils.arrayAwareToString(this.f2)
+                       + "," + StringUtils.arrayAwareToString(this.f3)
+                       + "," + StringUtils.arrayAwareToString(this.f4)
+                       + "," + StringUtils.arrayAwareToString(this.f5)
+                       + ")";
+       }
+
+       /**
+        * Deep equality for tuples by calling equals() on the tuple members
+        * @param o the object checked for equality
+        * @return true if this is equal to o.
+        */
+       @Override
+       public boolean equals(Object o) {
+               if(this == o) { return true; }
+               if (!(o instanceof Tuple6)) { return false; }
+               @SuppressWarnings("rawtypes")
+               Tuple6 tuple = (Tuple6) o;
+               if (f0 != null ? !f0.equals(tuple.f0) : tuple.f0 != null) { 
return false; }
+               if (f1 != null ? !f1.equals(tuple.f1) : tuple.f1 != null) { 
return false; }
+               if (f2 != null ? !f2.equals(tuple.f2) : tuple.f2 != null) { 
return false; }
+               if (f3 != null ? !f3.equals(tuple.f3) : tuple.f3 != null) { 
return false; }
+               if (f4 != null ? !f4.equals(tuple.f4) : tuple.f4 != null) { 
return false; }
+               if (f5 != null ? !f5.equals(tuple.f5) : tuple.f5 != null) { 
return false; }
+               return true;
+       }
+
+       @Override
+       public int hashCode() {
+               int result = f0 != null ? f0.hashCode() : 0;
+               result = 31 * result + (f1 != null ? f1.hashCode() : 0);
+               result = 31 * result + (f2 != null ? f2.hashCode() : 0);
+               result = 31 * result + (f3 != null ? f3.hashCode() : 0);
+               result = 31 * result + (f4 != null ? f4.hashCode() : 0);
+               result = 31 * result + (f5 != null ? f5.hashCode() : 0);
+               return result;
+       }
+
+       /**
+       * Shallow tuple copy.
+       * @return A new Tuple with the same fields as this.
+       */
+       @Override
+       @SuppressWarnings("unchecked")
+       public Tuple6<T0,T1,T2,T3,T4,T5> copy(){ 
+               return new Tuple6<T0,T1,T2,T3,T4,T5>(this.f0,
+                       this.f1,
+                       this.f2,
+                       this.f3,
+                       this.f4,
+                       this.f5);
+       }
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        * This is more convenient than using the constructor, because the 
compiler can
+        * infer the generic type arguments implicitly. For example:
+        * {@code Tuple3.of(n, x, s)}
+        * instead of
+        * {@code new Tuple3<Integer, Double, String>(n, x, s)}
+        */
+       public static <T0,T1,T2,T3,T4,T5> Tuple6<T0,T1,T2,T3,T4,T5> of(T0 
value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) {
+               return new Tuple6<T0,T1,T2,T3,T4,T5>(value0, value1, value2, 
value3, value4, value5);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple7.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple7.java 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple7.java
new file mode 100644
index 0000000..2008117
--- /dev/null
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple7.java
@@ -0,0 +1,244 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple;
+
+import org.apache.flink.util.StringUtils;
+
+/**
+ * A tuple with 7 fields. Tuples are strongly typed; each field may be of a 
separate type.
+ * The fields of the tuple can be accessed directly as public fields (f0, f1, 
...) or via their position
+ * through the {@link #getField(int)} method. The tuple field positions start 
at zero.
+ * <p>
+ * Tuples are mutable types, meaning that their fields can be re-assigned. 
This allows functions that work
+ * with Tuples to reuse objects in order to reduce pressure on the garbage 
collector.
+ *
+ * @see Tuple
+ *
+ * @param <T0> The type of field 0
+ * @param <T1> The type of field 1
+ * @param <T2> The type of field 2
+ * @param <T3> The type of field 3
+ * @param <T4> The type of field 4
+ * @param <T5> The type of field 5
+ * @param <T6> The type of field 6
+ */
+public class Tuple7<T0, T1, T2, T3, T4, T5, T6> extends Tuple {
+
+       private static final long serialVersionUID = 1L;
+
+       /** Field 0 of the tuple. */
+       public T0 f0;
+       /** Field 1 of the tuple. */
+       public T1 f1;
+       /** Field 2 of the tuple. */
+       public T2 f2;
+       /** Field 3 of the tuple. */
+       public T3 f3;
+       /** Field 4 of the tuple. */
+       public T4 f4;
+       /** Field 5 of the tuple. */
+       public T5 f5;
+       /** Field 6 of the tuple. */
+       public T6 f6;
+
+       /**
+        * Creates a new tuple where all fields are null.
+        */
+       public Tuple7() {}
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        * @param value6 The value for field 6
+        */
+       public Tuple7(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 
value5, T6 value6) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+               this.f6 = value6;
+       }
+
+       @Override
+       public int getArity() { return 7; }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> T getField(int pos) {
+               switch(pos) {
+                       case 0: return (T) this.f0;
+                       case 1: return (T) this.f1;
+                       case 2: return (T) this.f2;
+                       case 3: return (T) this.f3;
+                       case 4: return (T) this.f4;
+                       case 5: return (T) this.f5;
+                       case 6: return (T) this.f6;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> void setField(T value, int pos) {
+               switch(pos) {
+                       case 0:
+                               this.f0 = (T0) value;
+                               break;
+                       case 1:
+                               this.f1 = (T1) value;
+                               break;
+                       case 2:
+                               this.f2 = (T2) value;
+                               break;
+                       case 3:
+                               this.f3 = (T3) value;
+                               break;
+                       case 4:
+                               this.f4 = (T4) value;
+                               break;
+                       case 5:
+                               this.f5 = (T5) value;
+                               break;
+                       case 6:
+                               this.f6 = (T6) value;
+                               break;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       /**
+        * Sets new values to all fields of the tuple.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        * @param value6 The value for field 6
+        */
+       public void setFields(T0 value0, T1 value1, T2 value2, T3 value3, T4 
value4, T5 value5, T6 value6) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+               this.f6 = value6;
+       }
+
+
+       // 
-------------------------------------------------------------------------------------------------
+       // standard utilities
+       // 
-------------------------------------------------------------------------------------------------
+
+       /**
+        * Creates a string representation of the tuple in the form
+        * (f0, f1, f2, f3, f4, f5, f6),
+        * where the individual fields are the value returned by calling {@link 
Object#toString} on that field.
+        * @return The string representation of the tuple.
+        */
+       @Override
+       public String toString() {
+               return "(" + StringUtils.arrayAwareToString(this.f0)
+                       + "," + StringUtils.arrayAwareToString(this.f1)
+                       + "," + StringUtils.arrayAwareToString(this.f2)
+                       + "," + StringUtils.arrayAwareToString(this.f3)
+                       + "," + StringUtils.arrayAwareToString(this.f4)
+                       + "," + StringUtils.arrayAwareToString(this.f5)
+                       + "," + StringUtils.arrayAwareToString(this.f6)
+                       + ")";
+       }
+
+       /**
+        * Deep equality for tuples by calling equals() on the tuple members
+        * @param o the object checked for equality
+        * @return true if this is equal to o.
+        */
+       @Override
+       public boolean equals(Object o) {
+               if(this == o) { return true; }
+               if (!(o instanceof Tuple7)) { return false; }
+               @SuppressWarnings("rawtypes")
+               Tuple7 tuple = (Tuple7) o;
+               if (f0 != null ? !f0.equals(tuple.f0) : tuple.f0 != null) { 
return false; }
+               if (f1 != null ? !f1.equals(tuple.f1) : tuple.f1 != null) { 
return false; }
+               if (f2 != null ? !f2.equals(tuple.f2) : tuple.f2 != null) { 
return false; }
+               if (f3 != null ? !f3.equals(tuple.f3) : tuple.f3 != null) { 
return false; }
+               if (f4 != null ? !f4.equals(tuple.f4) : tuple.f4 != null) { 
return false; }
+               if (f5 != null ? !f5.equals(tuple.f5) : tuple.f5 != null) { 
return false; }
+               if (f6 != null ? !f6.equals(tuple.f6) : tuple.f6 != null) { 
return false; }
+               return true;
+       }
+
+       @Override
+       public int hashCode() {
+               int result = f0 != null ? f0.hashCode() : 0;
+               result = 31 * result + (f1 != null ? f1.hashCode() : 0);
+               result = 31 * result + (f2 != null ? f2.hashCode() : 0);
+               result = 31 * result + (f3 != null ? f3.hashCode() : 0);
+               result = 31 * result + (f4 != null ? f4.hashCode() : 0);
+               result = 31 * result + (f5 != null ? f5.hashCode() : 0);
+               result = 31 * result + (f6 != null ? f6.hashCode() : 0);
+               return result;
+       }
+
+       /**
+       * Shallow tuple copy.
+       * @return A new Tuple with the same fields as this.
+       */
+       @Override
+       @SuppressWarnings("unchecked")
+       public Tuple7<T0,T1,T2,T3,T4,T5,T6> copy(){ 
+               return new Tuple7<T0,T1,T2,T3,T4,T5,T6>(this.f0,
+                       this.f1,
+                       this.f2,
+                       this.f3,
+                       this.f4,
+                       this.f5,
+                       this.f6);
+       }
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        * This is more convenient than using the constructor, because the 
compiler can
+        * infer the generic type arguments implicitly. For example:
+        * {@code Tuple3.of(n, x, s)}
+        * instead of
+        * {@code new Tuple3<Integer, Double, String>(n, x, s)}
+        */
+       public static <T0,T1,T2,T3,T4,T5,T6> Tuple7<T0,T1,T2,T3,T4,T5,T6> of(T0 
value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6) {
+               return new Tuple7<T0,T1,T2,T3,T4,T5,T6>(value0, value1, value2, 
value3, value4, value5, value6);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple8.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple8.java 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple8.java
new file mode 100644
index 0000000..7aaa265
--- /dev/null
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple8.java
@@ -0,0 +1,259 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple;
+
+import org.apache.flink.util.StringUtils;
+
+/**
+ * A tuple with 8 fields. Tuples are strongly typed; each field may be of a 
separate type.
+ * The fields of the tuple can be accessed directly as public fields (f0, f1, 
...) or via their position
+ * through the {@link #getField(int)} method. The tuple field positions start 
at zero.
+ * <p>
+ * Tuples are mutable types, meaning that their fields can be re-assigned. 
This allows functions that work
+ * with Tuples to reuse objects in order to reduce pressure on the garbage 
collector.
+ *
+ * @see Tuple
+ *
+ * @param <T0> The type of field 0
+ * @param <T1> The type of field 1
+ * @param <T2> The type of field 2
+ * @param <T3> The type of field 3
+ * @param <T4> The type of field 4
+ * @param <T5> The type of field 5
+ * @param <T6> The type of field 6
+ * @param <T7> The type of field 7
+ */
+public class Tuple8<T0, T1, T2, T3, T4, T5, T6, T7> extends Tuple {
+
+       private static final long serialVersionUID = 1L;
+
+       /** Field 0 of the tuple. */
+       public T0 f0;
+       /** Field 1 of the tuple. */
+       public T1 f1;
+       /** Field 2 of the tuple. */
+       public T2 f2;
+       /** Field 3 of the tuple. */
+       public T3 f3;
+       /** Field 4 of the tuple. */
+       public T4 f4;
+       /** Field 5 of the tuple. */
+       public T5 f5;
+       /** Field 6 of the tuple. */
+       public T6 f6;
+       /** Field 7 of the tuple. */
+       public T7 f7;
+
+       /**
+        * Creates a new tuple where all fields are null.
+        */
+       public Tuple8() {}
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        * @param value6 The value for field 6
+        * @param value7 The value for field 7
+        */
+       public Tuple8(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 
value5, T6 value6, T7 value7) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+               this.f6 = value6;
+               this.f7 = value7;
+       }
+
+       @Override
+       public int getArity() { return 8; }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> T getField(int pos) {
+               switch(pos) {
+                       case 0: return (T) this.f0;
+                       case 1: return (T) this.f1;
+                       case 2: return (T) this.f2;
+                       case 3: return (T) this.f3;
+                       case 4: return (T) this.f4;
+                       case 5: return (T) this.f5;
+                       case 6: return (T) this.f6;
+                       case 7: return (T) this.f7;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> void setField(T value, int pos) {
+               switch(pos) {
+                       case 0:
+                               this.f0 = (T0) value;
+                               break;
+                       case 1:
+                               this.f1 = (T1) value;
+                               break;
+                       case 2:
+                               this.f2 = (T2) value;
+                               break;
+                       case 3:
+                               this.f3 = (T3) value;
+                               break;
+                       case 4:
+                               this.f4 = (T4) value;
+                               break;
+                       case 5:
+                               this.f5 = (T5) value;
+                               break;
+                       case 6:
+                               this.f6 = (T6) value;
+                               break;
+                       case 7:
+                               this.f7 = (T7) value;
+                               break;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       /**
+        * Sets new values to all fields of the tuple.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        * @param value6 The value for field 6
+        * @param value7 The value for field 7
+        */
+       public void setFields(T0 value0, T1 value1, T2 value2, T3 value3, T4 
value4, T5 value5, T6 value6, T7 value7) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+               this.f6 = value6;
+               this.f7 = value7;
+       }
+
+
+       // 
-------------------------------------------------------------------------------------------------
+       // standard utilities
+       // 
-------------------------------------------------------------------------------------------------
+
+       /**
+        * Creates a string representation of the tuple in the form
+        * (f0, f1, f2, f3, f4, f5, f6, f7),
+        * where the individual fields are the value returned by calling {@link 
Object#toString} on that field.
+        * @return The string representation of the tuple.
+        */
+       @Override
+       public String toString() {
+               return "(" + StringUtils.arrayAwareToString(this.f0)
+                       + "," + StringUtils.arrayAwareToString(this.f1)
+                       + "," + StringUtils.arrayAwareToString(this.f2)
+                       + "," + StringUtils.arrayAwareToString(this.f3)
+                       + "," + StringUtils.arrayAwareToString(this.f4)
+                       + "," + StringUtils.arrayAwareToString(this.f5)
+                       + "," + StringUtils.arrayAwareToString(this.f6)
+                       + "," + StringUtils.arrayAwareToString(this.f7)
+                       + ")";
+       }
+
+       /**
+        * Deep equality for tuples by calling equals() on the tuple members
+        * @param o the object checked for equality
+        * @return true if this is equal to o.
+        */
+       @Override
+       public boolean equals(Object o) {
+               if(this == o) { return true; }
+               if (!(o instanceof Tuple8)) { return false; }
+               @SuppressWarnings("rawtypes")
+               Tuple8 tuple = (Tuple8) o;
+               if (f0 != null ? !f0.equals(tuple.f0) : tuple.f0 != null) { 
return false; }
+               if (f1 != null ? !f1.equals(tuple.f1) : tuple.f1 != null) { 
return false; }
+               if (f2 != null ? !f2.equals(tuple.f2) : tuple.f2 != null) { 
return false; }
+               if (f3 != null ? !f3.equals(tuple.f3) : tuple.f3 != null) { 
return false; }
+               if (f4 != null ? !f4.equals(tuple.f4) : tuple.f4 != null) { 
return false; }
+               if (f5 != null ? !f5.equals(tuple.f5) : tuple.f5 != null) { 
return false; }
+               if (f6 != null ? !f6.equals(tuple.f6) : tuple.f6 != null) { 
return false; }
+               if (f7 != null ? !f7.equals(tuple.f7) : tuple.f7 != null) { 
return false; }
+               return true;
+       }
+
+       @Override
+       public int hashCode() {
+               int result = f0 != null ? f0.hashCode() : 0;
+               result = 31 * result + (f1 != null ? f1.hashCode() : 0);
+               result = 31 * result + (f2 != null ? f2.hashCode() : 0);
+               result = 31 * result + (f3 != null ? f3.hashCode() : 0);
+               result = 31 * result + (f4 != null ? f4.hashCode() : 0);
+               result = 31 * result + (f5 != null ? f5.hashCode() : 0);
+               result = 31 * result + (f6 != null ? f6.hashCode() : 0);
+               result = 31 * result + (f7 != null ? f7.hashCode() : 0);
+               return result;
+       }
+
+       /**
+       * Shallow tuple copy.
+       * @return A new Tuple with the same fields as this.
+       */
+       @Override
+       @SuppressWarnings("unchecked")
+       public Tuple8<T0,T1,T2,T3,T4,T5,T6,T7> copy(){ 
+               return new Tuple8<T0,T1,T2,T3,T4,T5,T6,T7>(this.f0,
+                       this.f1,
+                       this.f2,
+                       this.f3,
+                       this.f4,
+                       this.f5,
+                       this.f6,
+                       this.f7);
+       }
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        * This is more convenient than using the constructor, because the 
compiler can
+        * infer the generic type arguments implicitly. For example:
+        * {@code Tuple3.of(n, x, s)}
+        * instead of
+        * {@code new Tuple3<Integer, Double, String>(n, x, s)}
+        */
+       public static <T0,T1,T2,T3,T4,T5,T6,T7> Tuple8<T0,T1,T2,T3,T4,T5,T6,T7> 
of(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, 
T7 value7) {
+               return new Tuple8<T0,T1,T2,T3,T4,T5,T6,T7>(value0, value1, 
value2, value3, value4, value5, value6, value7);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple9.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple9.java 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple9.java
new file mode 100644
index 0000000..86ea998
--- /dev/null
+++ b/flink-core/src/main/java/org/apache/flink/api/java/tuple/Tuple9.java
@@ -0,0 +1,274 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple;
+
+import org.apache.flink.util.StringUtils;
+
+/**
+ * A tuple with 9 fields. Tuples are strongly typed; each field may be of a 
separate type.
+ * The fields of the tuple can be accessed directly as public fields (f0, f1, 
...) or via their position
+ * through the {@link #getField(int)} method. The tuple field positions start 
at zero.
+ * <p>
+ * Tuples are mutable types, meaning that their fields can be re-assigned. 
This allows functions that work
+ * with Tuples to reuse objects in order to reduce pressure on the garbage 
collector.
+ *
+ * @see Tuple
+ *
+ * @param <T0> The type of field 0
+ * @param <T1> The type of field 1
+ * @param <T2> The type of field 2
+ * @param <T3> The type of field 3
+ * @param <T4> The type of field 4
+ * @param <T5> The type of field 5
+ * @param <T6> The type of field 6
+ * @param <T7> The type of field 7
+ * @param <T8> The type of field 8
+ */
+public class Tuple9<T0, T1, T2, T3, T4, T5, T6, T7, T8> extends Tuple {
+
+       private static final long serialVersionUID = 1L;
+
+       /** Field 0 of the tuple. */
+       public T0 f0;
+       /** Field 1 of the tuple. */
+       public T1 f1;
+       /** Field 2 of the tuple. */
+       public T2 f2;
+       /** Field 3 of the tuple. */
+       public T3 f3;
+       /** Field 4 of the tuple. */
+       public T4 f4;
+       /** Field 5 of the tuple. */
+       public T5 f5;
+       /** Field 6 of the tuple. */
+       public T6 f6;
+       /** Field 7 of the tuple. */
+       public T7 f7;
+       /** Field 8 of the tuple. */
+       public T8 f8;
+
+       /**
+        * Creates a new tuple where all fields are null.
+        */
+       public Tuple9() {}
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        * @param value6 The value for field 6
+        * @param value7 The value for field 7
+        * @param value8 The value for field 8
+        */
+       public Tuple9(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 
value5, T6 value6, T7 value7, T8 value8) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+               this.f6 = value6;
+               this.f7 = value7;
+               this.f8 = value8;
+       }
+
+       @Override
+       public int getArity() { return 9; }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> T getField(int pos) {
+               switch(pos) {
+                       case 0: return (T) this.f0;
+                       case 1: return (T) this.f1;
+                       case 2: return (T) this.f2;
+                       case 3: return (T) this.f3;
+                       case 4: return (T) this.f4;
+                       case 5: return (T) this.f5;
+                       case 6: return (T) this.f6;
+                       case 7: return (T) this.f7;
+                       case 8: return (T) this.f8;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       @Override
+       @SuppressWarnings("unchecked")
+       public <T> void setField(T value, int pos) {
+               switch(pos) {
+                       case 0:
+                               this.f0 = (T0) value;
+                               break;
+                       case 1:
+                               this.f1 = (T1) value;
+                               break;
+                       case 2:
+                               this.f2 = (T2) value;
+                               break;
+                       case 3:
+                               this.f3 = (T3) value;
+                               break;
+                       case 4:
+                               this.f4 = (T4) value;
+                               break;
+                       case 5:
+                               this.f5 = (T5) value;
+                               break;
+                       case 6:
+                               this.f6 = (T6) value;
+                               break;
+                       case 7:
+                               this.f7 = (T7) value;
+                               break;
+                       case 8:
+                               this.f8 = (T8) value;
+                               break;
+                       default: throw new 
IndexOutOfBoundsException(String.valueOf(pos));
+               }
+       }
+
+       /**
+        * Sets new values to all fields of the tuple.
+        *
+        * @param value0 The value for field 0
+        * @param value1 The value for field 1
+        * @param value2 The value for field 2
+        * @param value3 The value for field 3
+        * @param value4 The value for field 4
+        * @param value5 The value for field 5
+        * @param value6 The value for field 6
+        * @param value7 The value for field 7
+        * @param value8 The value for field 8
+        */
+       public void setFields(T0 value0, T1 value1, T2 value2, T3 value3, T4 
value4, T5 value5, T6 value6, T7 value7, T8 value8) {
+               this.f0 = value0;
+               this.f1 = value1;
+               this.f2 = value2;
+               this.f3 = value3;
+               this.f4 = value4;
+               this.f5 = value5;
+               this.f6 = value6;
+               this.f7 = value7;
+               this.f8 = value8;
+       }
+
+
+       // 
-------------------------------------------------------------------------------------------------
+       // standard utilities
+       // 
-------------------------------------------------------------------------------------------------
+
+       /**
+        * Creates a string representation of the tuple in the form
+        * (f0, f1, f2, f3, f4, f5, f6, f7, f8),
+        * where the individual fields are the value returned by calling {@link 
Object#toString} on that field.
+        * @return The string representation of the tuple.
+        */
+       @Override
+       public String toString() {
+               return "(" + StringUtils.arrayAwareToString(this.f0)
+                       + "," + StringUtils.arrayAwareToString(this.f1)
+                       + "," + StringUtils.arrayAwareToString(this.f2)
+                       + "," + StringUtils.arrayAwareToString(this.f3)
+                       + "," + StringUtils.arrayAwareToString(this.f4)
+                       + "," + StringUtils.arrayAwareToString(this.f5)
+                       + "," + StringUtils.arrayAwareToString(this.f6)
+                       + "," + StringUtils.arrayAwareToString(this.f7)
+                       + "," + StringUtils.arrayAwareToString(this.f8)
+                       + ")";
+       }
+
+       /**
+        * Deep equality for tuples by calling equals() on the tuple members
+        * @param o the object checked for equality
+        * @return true if this is equal to o.
+        */
+       @Override
+       public boolean equals(Object o) {
+               if(this == o) { return true; }
+               if (!(o instanceof Tuple9)) { return false; }
+               @SuppressWarnings("rawtypes")
+               Tuple9 tuple = (Tuple9) o;
+               if (f0 != null ? !f0.equals(tuple.f0) : tuple.f0 != null) { 
return false; }
+               if (f1 != null ? !f1.equals(tuple.f1) : tuple.f1 != null) { 
return false; }
+               if (f2 != null ? !f2.equals(tuple.f2) : tuple.f2 != null) { 
return false; }
+               if (f3 != null ? !f3.equals(tuple.f3) : tuple.f3 != null) { 
return false; }
+               if (f4 != null ? !f4.equals(tuple.f4) : tuple.f4 != null) { 
return false; }
+               if (f5 != null ? !f5.equals(tuple.f5) : tuple.f5 != null) { 
return false; }
+               if (f6 != null ? !f6.equals(tuple.f6) : tuple.f6 != null) { 
return false; }
+               if (f7 != null ? !f7.equals(tuple.f7) : tuple.f7 != null) { 
return false; }
+               if (f8 != null ? !f8.equals(tuple.f8) : tuple.f8 != null) { 
return false; }
+               return true;
+       }
+
+       @Override
+       public int hashCode() {
+               int result = f0 != null ? f0.hashCode() : 0;
+               result = 31 * result + (f1 != null ? f1.hashCode() : 0);
+               result = 31 * result + (f2 != null ? f2.hashCode() : 0);
+               result = 31 * result + (f3 != null ? f3.hashCode() : 0);
+               result = 31 * result + (f4 != null ? f4.hashCode() : 0);
+               result = 31 * result + (f5 != null ? f5.hashCode() : 0);
+               result = 31 * result + (f6 != null ? f6.hashCode() : 0);
+               result = 31 * result + (f7 != null ? f7.hashCode() : 0);
+               result = 31 * result + (f8 != null ? f8.hashCode() : 0);
+               return result;
+       }
+
+       /**
+       * Shallow tuple copy.
+       * @return A new Tuple with the same fields as this.
+       */
+       @Override
+       @SuppressWarnings("unchecked")
+       public Tuple9<T0,T1,T2,T3,T4,T5,T6,T7,T8> copy(){ 
+               return new Tuple9<T0,T1,T2,T3,T4,T5,T6,T7,T8>(this.f0,
+                       this.f1,
+                       this.f2,
+                       this.f3,
+                       this.f4,
+                       this.f5,
+                       this.f6,
+                       this.f7,
+                       this.f8);
+       }
+
+       /**
+        * Creates a new tuple and assigns the given values to the tuple's 
fields.
+        * This is more convenient than using the constructor, because the 
compiler can
+        * infer the generic type arguments implicitly. For example:
+        * {@code Tuple3.of(n, x, s)}
+        * instead of
+        * {@code new Tuple3<Integer, Double, String>(n, x, s)}
+        */
+       public static <T0,T1,T2,T3,T4,T5,T6,T7,T8> 
Tuple9<T0,T1,T2,T3,T4,T5,T6,T7,T8> of(T0 value0, T1 value1, T2 value2, T3 
value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) {
+               return new Tuple9<T0,T1,T2,T3,T4,T5,T6,T7,T8>(value0, value1, 
value2, value3, value4, value5, value6, value7, value8);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple0Builder.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple0Builder.java
 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple0Builder.java
new file mode 100644
index 0000000..5facb7e
--- /dev/null
+++ 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple0Builder.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple.builder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.flink.api.java.tuple.Tuple0;
+
+public class Tuple0Builder {
+
+       private List<Tuple0> tuples = new ArrayList<Tuple0>();
+
+       public Tuple0Builder add() {
+               tuples.add(Tuple0.INSTANCE);
+               return this;
+       }
+
+       public Tuple0[] build() {
+               return tuples.toArray(new Tuple0[tuples.size()]);
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple10Builder.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple10Builder.java
 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple10Builder.java
new file mode 100644
index 0000000..a5aec21
--- /dev/null
+++ 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple10Builder.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple.builder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.flink.api.java.tuple.Tuple10;
+
+public class Tuple10Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> {
+
+       private List<Tuple10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>> tuples = 
new ArrayList<>();
+
+       public Tuple10Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> add(T0 
value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 
value7, T8 value8, T9 value9){
+               tuples.add(new Tuple10<>(value0, value1, value2, value3, 
value4, value5, value6, value7, value8, value9));
+               return this;
+       }
+
+       @SuppressWarnings("unchecked")
+       public Tuple10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>[] build(){
+               return tuples.toArray(new Tuple10[tuples.size()]);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple11Builder.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple11Builder.java
 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple11Builder.java
new file mode 100644
index 0000000..cbbba7d
--- /dev/null
+++ 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple11Builder.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple.builder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.flink.api.java.tuple.Tuple11;
+
+public class Tuple11Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> {
+
+       private List<Tuple11<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>> 
tuples = new ArrayList<>();
+
+       public Tuple11Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> 
add(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 
value6, T7 value7, T8 value8, T9 value9, T10 value10){
+               tuples.add(new Tuple11<>(value0, value1, value2, value3, 
value4, value5, value6, value7, value8, value9, value10));
+               return this;
+       }
+
+       @SuppressWarnings("unchecked")
+       public Tuple11<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>[] build(){
+               return tuples.toArray(new Tuple11[tuples.size()]);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple12Builder.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple12Builder.java
 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple12Builder.java
new file mode 100644
index 0000000..08ee5fe
--- /dev/null
+++ 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple12Builder.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple.builder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.flink.api.java.tuple.Tuple12;
+
+public class Tuple12Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> {
+
+       private List<Tuple12<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>> 
tuples = new ArrayList<>();
+
+       public Tuple12Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> 
add(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 
value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11){
+               tuples.add(new Tuple12<>(value0, value1, value2, value3, 
value4, value5, value6, value7, value8, value9, value10, value11));
+               return this;
+       }
+
+       @SuppressWarnings("unchecked")
+       public Tuple12<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>[] 
build(){
+               return tuples.toArray(new Tuple12[tuples.size()]);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple13Builder.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple13Builder.java
 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple13Builder.java
new file mode 100644
index 0000000..be8d8ff
--- /dev/null
+++ 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple13Builder.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple.builder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.flink.api.java.tuple.Tuple13;
+
+public class Tuple13Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, 
T12> {
+
+       private List<Tuple13<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, 
T12>> tuples = new ArrayList<>();
+
+       public Tuple13Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, 
T12> add(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 
value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 value12){
+               tuples.add(new Tuple13<>(value0, value1, value2, value3, 
value4, value5, value6, value7, value8, value9, value10, value11, value12));
+               return this;
+       }
+
+       @SuppressWarnings("unchecked")
+       public Tuple13<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>[] 
build(){
+               return tuples.toArray(new Tuple13[tuples.size()]);
+       }
+}

http://git-wip-us.apache.org/repos/asf/flink/blob/7081836e/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple14Builder.java
----------------------------------------------------------------------
diff --git 
a/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple14Builder.java
 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple14Builder.java
new file mode 100644
index 0000000..4f26af4
--- /dev/null
+++ 
b/flink-core/src/main/java/org/apache/flink/api/java/tuple/builder/Tuple14Builder.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// --------------------------------------------------------------
+//  THIS IS A GENERATED SOURCE FILE. DO NOT EDIT!
+//  GENERATED FROM org.apache.flink.api.java.tuple.TupleGenerator.
+// --------------------------------------------------------------
+
+
+package org.apache.flink.api.java.tuple.builder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.flink.api.java.tuple.Tuple14;
+
+public class Tuple14Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, 
T12, T13> {
+
+       private List<Tuple14<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, 
T12, T13>> tuples = new ArrayList<>();
+
+       public Tuple14Builder<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, 
T12, T13> add(T0 value0, T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, 
T6 value6, T7 value7, T8 value8, T9 value9, T10 value10, T11 value11, T12 
value12, T13 value13){
+               tuples.add(new Tuple14<>(value0, value1, value2, value3, 
value4, value5, value6, value7, value8, value9, value10, value11, value12, 
value13));
+               return this;
+       }
+
+       @SuppressWarnings("unchecked")
+       public Tuple14<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, 
T13>[] build(){
+               return tuples.toArray(new Tuple14[tuples.size()]);
+       }
+}

Reply via email to