提交 34c4808c 编写于 作者: J James Strachan

#KT-1565 add a StringTemplate class which takes a Tuple - also add a Tuple so...

#KT-1565 add a StringTemplate class which takes a Tuple - also add a Tuple so we can easily generically process all the items in a tuple
上级 32264cd4
/*
* Copyright 2010-2012 JetBrains s.r.o.
*
* Licensed 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.
*/
package jet;
/**
* Represents a string template object; that is a string with $ expressions such as "Hello $user".
*
* It is represented as an object that contains a Tuple
*/
public class StringTemplate<T extends Tuple> {
private final T tuple;
public StringTemplate(T tuple) {
this.tuple = tuple;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
StringTemplate that = (StringTemplate) o;
if (tuple != null ? !tuple.equals(that.tuple) : that.tuple != null) return false;
return true;
}
@Override
public int hashCode() {
return tuple != null ? tuple.hashCode() : 0;
}
/**
* Returns the plain string version of the string template with no special escaping
*/
@Override
public String toString() {
final StringBuilder builder = new StringBuilder();
tuple.forEach(new Function1<Object,Void>(){
@Override
public Void invoke(Object o) {
builder.append(o);
return null;
}
});
return builder.toString();
}
/**
* Returns the values in the string template
*/
public T getValues() {
return tuple;
}
}
/*
* Copyright 2010-2012 JetBrains s.r.o.
*
* Licensed 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.
*/
package jet;
/**
* Represents the common interface of a tuple
*/
public abstract class Tuple extends DefaultJetObject {
/**
* Performs the given function on each item in the tuple
*/
public abstract void forEach(Function1<Object, Void> fn);
/**
* Returns the size of the tuple
*/
public abstract int size();
}
......@@ -19,7 +19,7 @@ package jet;
/**
* @author alex.tkachman
*/
public class Tuple0 {
public class Tuple0 extends Tuple {
public static final Tuple0 INSTANCE = new Tuple0();
private Tuple0() {
......@@ -39,4 +39,13 @@ public class Tuple0 {
public int hashCode() {
return 239;
}
@Override
public void forEach(Function1<Object, Void> fn) {
}
@Override
public int size() {
return 0;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple1<T1> extends DefaultJetObject {
public class Tuple1<T1> extends Tuple {
public final T1 _1;
public Tuple1(T1 t1) {
......@@ -44,4 +44,14 @@ public class Tuple1<T1> extends DefaultJetObject {
int result = _1 != null ? _1.hashCode() : 0;
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
}
@Override
public int size() {
return 1;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> extends DefaultJetObject {
public class Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -107,4 +107,23 @@ public class Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> extends DefaultJet
result = 31 * result + (_10 != null ? _10.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
}
@Override
public int size() {
return 10;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> extends DefaultJetObject {
public class Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -114,4 +114,24 @@ public class Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> extends Defau
result = 31 * result + (_11 != null ? _11.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
}
@Override
public int size() {
return 11;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> extends DefaultJetObject {
public class Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -121,4 +121,25 @@ public class Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> extends
result = 31 * result + (_12 != null ? _12.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
}
@Override
public int size() {
return 12;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> extends DefaultJetObject {
public class Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -128,4 +128,27 @@ public class Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ext
result = 31 * result + (_13 != null ? _13.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
}
@Override
public int size() {
return 13;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> extends DefaultJetObject {
public class Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -135,4 +135,28 @@ public class Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
result = 31 * result + (_14 != null ? _14.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
fn.invoke(_14);
}
@Override
public int size() {
return 14;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> extends DefaultJetObject {
public class Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -142,4 +142,29 @@ public class Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
result = 31 * result + (_15 != null ? _15.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
fn.invoke(_14);
fn.invoke(_15);
}
@Override
public int size() {
return 15;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> extends DefaultJetObject {
public class Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -149,4 +149,30 @@ public class Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
result = 31 * result + (_16 != null ? _16.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
fn.invoke(_14);
fn.invoke(_15);
fn.invoke(_16);
}
@Override
public int size() {
return 16;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> extends DefaultJetObject {
public class Tuple17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -156,4 +156,31 @@ public class Tuple17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
result = 31 * result + (_17 != null ? _17.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
fn.invoke(_14);
fn.invoke(_15);
fn.invoke(_16);
fn.invoke(_17);
}
@Override
public int size() {
return 17;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> extends DefaultJetObject {
public class Tuple18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -163,4 +163,32 @@ public class Tuple18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
result = 31 * result + (_18 != null ? _18.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
fn.invoke(_14);
fn.invoke(_15);
fn.invoke(_16);
fn.invoke(_17);
fn.invoke(_18);
}
@Override
public int size() {
return 18;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> extends DefaultJetObject {
public class Tuple19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -170,4 +170,33 @@ public class Tuple19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
result = 31 * result + (_19 != null ? _19.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
fn.invoke(_14);
fn.invoke(_15);
fn.invoke(_16);
fn.invoke(_17);
fn.invoke(_18);
fn.invoke(_19);
}
@Override
public int size() {
return 19;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple2<T1, T2> extends DefaultJetObject {
public class Tuple2<T1, T2> extends Tuple {
public final T1 _1;
public final T2 _2;
......@@ -51,4 +51,15 @@ public class Tuple2<T1, T2> extends DefaultJetObject {
result = 31 * result + (_2 != null ? _2.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
}
@Override
public int size() {
return 2;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> extends DefaultJetObject {
public class Tuple20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -177,4 +177,34 @@ public class Tuple20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
result = 31 * result + (_20 != null ? _20.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
fn.invoke(_14);
fn.invoke(_15);
fn.invoke(_16);
fn.invoke(_17);
fn.invoke(_18);
fn.invoke(_19);
fn.invoke(_20);
}
@Override
public int size() {
return 20;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> extends DefaultJetObject {
public class Tuple21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -184,4 +184,35 @@ public class Tuple21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
result = 31 * result + (_21 != null ? _21.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
fn.invoke(_14);
fn.invoke(_15);
fn.invoke(_16);
fn.invoke(_17);
fn.invoke(_18);
fn.invoke(_19);
fn.invoke(_20);
fn.invoke(_21);
}
@Override
public int size() {
return 21;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> extends DefaultJetObject {
public class Tuple22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -191,4 +191,35 @@ public class Tuple22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
result = 31 * result + (_22 != null ? _22.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
fn.invoke(_10);
fn.invoke(_11);
fn.invoke(_12);
fn.invoke(_13);
fn.invoke(_13);
fn.invoke(_14);
fn.invoke(_15);
fn.invoke(_16);
fn.invoke(_17);
fn.invoke(_18);
fn.invoke(_19);
fn.invoke(_20);
fn.invoke(_22);
}
@Override
public int size() {
return 22;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple3<T1, T2, T3> extends DefaultJetObject {
public class Tuple3<T1, T2, T3> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -58,4 +58,16 @@ public class Tuple3<T1, T2, T3> extends DefaultJetObject {
result = 31 * result + (_3 != null ? _3.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
}
@Override
public int size() {
return 3;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple4<T1, T2, T3, T4> extends DefaultJetObject {
public class Tuple4<T1, T2, T3, T4> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -65,4 +65,17 @@ public class Tuple4<T1, T2, T3, T4> extends DefaultJetObject {
result = 31 * result + (_4 != null ? _4.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
}
@Override
public int size() {
return 4;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple5<T1, T2, T3, T4, T5> extends DefaultJetObject {
public class Tuple5<T1, T2, T3, T4, T5> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -72,4 +72,18 @@ public class Tuple5<T1, T2, T3, T4, T5> extends DefaultJetObject {
result = 31 * result + (_5 != null ? _5.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
}
@Override
public int size() {
return 5;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple6<T1, T2, T3, T4, T5, T6> extends DefaultJetObject {
public class Tuple6<T1, T2, T3, T4, T5, T6> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -79,4 +79,19 @@ public class Tuple6<T1, T2, T3, T4, T5, T6> extends DefaultJetObject {
result = 31 * result + (_6 != null ? _6.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
}
@Override
public int size() {
return 6;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple7<T1, T2, T3, T4, T5, T6, T7> extends DefaultJetObject {
public class Tuple7<T1, T2, T3, T4, T5, T6, T7> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -86,4 +86,20 @@ public class Tuple7<T1, T2, T3, T4, T5, T6, T7> extends DefaultJetObject {
result = 31 * result + (_7 != null ? _7.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
}
@Override
public int size() {
return 7;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> extends DefaultJetObject {
public class Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -93,4 +93,21 @@ public class Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> extends DefaultJetObject {
result = 31 * result + (_8 != null ? _8.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
}
@Override
public int size() {
return 8;
}
}
......@@ -16,7 +16,7 @@
package jet;
public class Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> extends DefaultJetObject {
public class Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> extends Tuple {
public final T1 _1;
public final T2 _2;
public final T3 _3;
......@@ -100,4 +100,22 @@ public class Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> extends DefaultJetObject
result = 31 * result + (_9 != null ? _9.hashCode() : 0);
return result;
}
@Override
public void forEach(Function1<Object, Void> fn) {
fn.invoke(_1);
fn.invoke(_2);
fn.invoke(_3);
fn.invoke(_4);
fn.invoke(_5);
fn.invoke(_6);
fn.invoke(_7);
fn.invoke(_8);
fn.invoke(_9);
}
@Override
public int size() {
return 9;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册