+/**
+ * This code is generated in org.simantics.scl.runtime.generation.GenerateTuples.
+ * Do not edit manually!
+ */\r
+package org.simantics.scl.runtime.tuple;\r
+\r
+public class Tuple3 implements Tuple {\r
+ public final Object c0;\r
+ public final Object c1;\r
+ public final Object c2;\r
+\r
+ public Tuple3(Object c0, Object c1, Object c2) {\r
+ this.c0 = c0;\r
+ this.c1 = c1;\r
+ this.c2 = c2;\r
+ }\r
+\r
+ public int length() {\r
+ return 3;\r
+ }\r
+\r
+ public Object get(int id) {\r
+ switch(id) {\r
+ case 0: return c0;\r
+ case 1: return c1;\r
+ case 2: return c2;\r
+ default: throw new IndexOutOfBoundsException();\r
+ }\r
+ }\r
+\r
+ public Object[] toArray() {\r
+ return new Object[] { c0, c1, c2 };\r
+ }\r
+\r
+ @Override\r
+ public boolean equals(Object obj) {\r
+ if(obj == this)\r
+ return true;\r
+ if(obj == null || obj.getClass() != getClass())\r
+ return false;\r
+ Tuple3 tuple = (Tuple3)obj;\r
+ if(c0 == null) {\r
+ if(tuple.c0 != null)\r
+ return false;\r
+ }\r
+ else if(!c0.equals(tuple.c0))\r
+ return false;\r
+ if(c1 == null) {\r
+ if(tuple.c1 != null)\r
+ return false;\r
+ }\r
+ else if(!c1.equals(tuple.c1))\r
+ return false;\r
+ if(c2 == null) {\r
+ if(tuple.c2 != null)\r
+ return false;\r
+ }\r
+ else if(!c2.equals(tuple.c2))\r
+ return false;\r
+ return true;\r
+ }\r
+\r
+ @Override\r
+ public int hashCode() {\r
+ int result = c0 == null ? 0 : c0.hashCode();\r
+ result *= 31;\r
+ if(c1 != null)\r
+ result += c1.hashCode();\r
+ result *= 31;\r
+ if(c2 != null)\r
+ result += c2.hashCode();\r
+ return result;\r
+ }\r
+\r
+ @Override\r
+ public String toString() {\r
+ StringBuilder b = new StringBuilder();\r
+ b.append('(');\r
+ b.append(c0);\r
+ b.append(',');\r
+ b.append(c1);\r
+ b.append(',');\r
+ b.append(c2);\r
+ b.append(')');\r
+ return b.toString();\r
+ }\r
+}\r