12ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/* GENERATED SOURCE. DO NOT MODIFY. */ 22ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/* 32ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ********************************************************************** 42ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Copyright (c) 2002-2014, Google, International Business Machines 52ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Corporation and others. All Rights Reserved. 62ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ********************************************************************** 72ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Author: Mark Davis 82ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ********************************************************************** 92ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpackage android.icu.impl; 112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerimport android.icu.util.Freezable; 132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 151537b2f39245c07b00aa78c3600f7aebcb172490Neil Fuller/** 161537b2f39245c07b00aa78c3600f7aebcb172490Neil Fuller * @hide Only a subset of ICU is exposed in Android 17836e6b40a94ec3fb7545a76cb072960442b7eee9Neil Fuller */ 182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller@SuppressWarnings({ "unchecked", "rawtypes" }) 192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpublic class Row<C0, C1, C2, C3, C4> implements java.lang.Comparable, Cloneable, 202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller Freezable<Row<C0, C1, C2, C3, C4>>{ 212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller protected Object[] items; 222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller protected volatile boolean frozen; 232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Convenience Methods 262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public static <C0, C1> R2<C0,C1> of(C0 p0, C1 p1) { 282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return new R2<C0,C1>(p0,p1); 292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public static <C0, C1, C2> R3<C0,C1,C2> of(C0 p0, C1 p1, C2 p2) { 312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return new R3<C0,C1,C2>(p0,p1,p2); 322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public static <C0, C1, C2, C3> R4<C0,C1,C2,C3> of(C0 p0, C1 p1, C2 p2, C3 p3) { 342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return new R4<C0,C1,C2,C3>(p0,p1,p2,p3); 352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public static <C0, C1, C2, C3, C4> R5<C0,C1,C2,C3,C4> of(C0 p0, C1 p1, C2 p2, C3 p3, C4 p4) { 372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return new R5<C0,C1,C2,C3,C4>(p0,p1,p2,p3,p4); 382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public static class R2<C0, C1> extends Row<C0, C1, C1, C1, C1> { 412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public R2(C0 a, C1 b) { 422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller items = new Object[] {a, b}; 432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public static class R3<C0, C1, C2> extends Row<C0, C1, C2, C2, C2> { 462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public R3(C0 a, C1 b, C2 c) { 472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller items = new Object[] {a, b, c}; 482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public static class R4<C0, C1, C2, C3> extends Row<C0, C1, C2, C3, C3> { 512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public R4(C0 a, C1 b, C2 c, C3 d) { 522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller items = new Object[] {a, b, c, d}; 532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public static class R5<C0, C1, C2, C3, C4> extends Row<C0, C1, C2, C3, C4> { 562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public R5(C0 a, C1 b, C2 c, C3 d, C4 e) { 572ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller items = new Object[] {a, b, c, d, e}; 582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 602ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public Row<C0, C1, C2, C3, C4> set0(C0 item) { 622ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return set(0, item); 632ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 642ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public C0 get0() { 652ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return (C0) items[0]; 662ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 672ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public Row<C0, C1, C2, C3, C4> set1(C1 item) { 682ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return set(1, item); 692ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 702ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public C1 get1() { 712ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return (C1) items[1]; 722ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 732ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public Row<C0, C1, C2, C3, C4> set2(C2 item) { 742ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return set(2, item); 752ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 762ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public C2 get2() { 772ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return (C2) items[2]; 782ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 792ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public Row<C0, C1, C2, C3, C4> set3(C3 item) { 802ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return set(3, item); 812ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 822ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public C3 get3() { 832ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return (C3) items[3]; 842ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 852ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public Row<C0, C1, C2, C3, C4> set4(C4 item) { 862ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return set(4, item); 872ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 882ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public C4 get4() { 892ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return (C4) items[4]; 902ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 912ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 922ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller protected Row<C0, C1, C2, C3, C4> set(int i, Object item) { 932ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (frozen) { 942ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller throw new UnsupportedOperationException("Attempt to modify frozen object"); 952ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 962ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller items[i] = item; 972ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return this; 982ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 992ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1002ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public int hashCode() { 1012ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int sum = items.length; 1022ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller for (Object item : items) { 1032ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller sum = sum*37 + Utility.checkHash(item); 1042ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1052ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return sum; 1062ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1072ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1082ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public boolean equals(Object other) { 1092ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (other == null) { 1102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return false; 1112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (this == other) { 1132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return true; 1142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller try { 1162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller Row<C0, C1, C2, C3, C4> that = (Row<C0, C1, C2, C3, C4>)other; 1172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (items.length != that.items.length) { 1182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return false; 1192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int i = 0; 1212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller for (Object item : items) { 1222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (!Utility.objectEquals(item, that.items[i++])) { 1232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return false; 1242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return true; 1272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } catch (Exception e) { 1282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return false; 1292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public int compareTo(Object other) { 1332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int result; 1342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller Row<C0, C1, C2, C3, C4> that = (Row<C0, C1, C2, C3, C4>)other; 1352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller result = items.length - that.items.length; 1362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (result != 0) { 1372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return result; 1382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int i = 0; 1402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller for (Object item : items) { 1412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller result = Utility.checkCompare(((Comparable)item), ((Comparable)that.items[i++])); 1422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (result != 0) { 1432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return result; 1442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return 0; 1472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public String toString() { 1502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller StringBuilder result = new StringBuilder("["); 1512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller boolean first = true; 1522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller for (Object item : items) { 1532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (first) { 1542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller first = false; 1552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } else { 1562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller result.append(", "); 1572ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller result.append(item); 1592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1602ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return result.append("]").toString(); 1612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1622ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1632ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public boolean isFrozen() { 1642ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return frozen; 1652ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1662ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1672ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public Row<C0, C1, C2, C3, C4> freeze() { 1682ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller frozen = true; 1692ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return this; 1702ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1712ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1722ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public Object clone() { 1732ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (frozen) return this; 1742ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller try { 1752ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller Row<C0, C1, C2, C3, C4> result = (Row<C0, C1, C2, C3, C4>) super.clone(); 1762ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller items = items.clone(); 1772ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return result; 1782ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } catch (CloneNotSupportedException e) { 1792ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return null; 1802ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1812ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1822ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1832ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public Row<C0, C1, C2, C3, C4> cloneAsThawed() { 1842ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller try { 1852ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller Row<C0, C1, C2, C3, C4> result = (Row<C0, C1, C2, C3, C4>) super.clone(); 1862ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller items = items.clone(); 1872ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller result.frozen = false; 1882ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return result; 1892ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } catch (CloneNotSupportedException e) { 1902ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return null; 1912ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1922ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1932ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller} 1942ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 195