12ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/* GENERATED SOURCE. DO NOT MODIFY. */ 2f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert// © 2016 and later: Unicode, Inc. and others. 3f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html#License 42ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/* 52ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ******************************************************************************* 62ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Copyright (C) 2014, International Business Machines Corporation and 72ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * others. All Rights Reserved. 82ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ******************************************************************************* 92ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * created on: 2014feb10 112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * created by: Markus W. Scherer 122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpackage android.icu.impl.coll; 142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller// TODO: There must be a Java class for a growable array of longs without auto-boxing to Long?! 162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller// Keep the API parallel to the C++ version for ease of porting. Port methods only as needed. 172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller// If & when we start using something else, we might keep this as a thin wrapper for porting. 181537b2f39245c07b00aa78c3600f7aebcb172490Neil Fuller/** 191537b2f39245c07b00aa78c3600f7aebcb172490Neil Fuller * @hide Only a subset of ICU is exposed in Android 20836e6b40a94ec3fb7545a76cb072960442b7eee9Neil Fuller */ 212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpublic final class UVector64 { 222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public UVector64() {} 232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public boolean isEmpty() { return length == 0; } 242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public int size() { return length; } 252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public long elementAti(int i) { return buffer[i]; } 262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public long[] getBuffer() { return buffer; } 272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public void addElement(long e) { 282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ensureAppendCapacity(); 292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller buffer[length++] = e; 302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public void setElementAt(long elem, int index) { buffer[index] = elem; } 322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public void insertElementAt(long elem, int index) { 332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ensureAppendCapacity(); 342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller System.arraycopy(buffer, index, buffer, index + 1, length - index); 352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller buffer[index] = elem; 362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ++length; 372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public void removeAllElements() { 392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller length = 0; 402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller private void ensureAppendCapacity() { 432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if(length >= buffer.length) { 442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int newCapacity = buffer.length <= 0xffff ? 4 * buffer.length : 2 * buffer.length; 452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller long[] newBuffer = new long[newCapacity]; 462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller System.arraycopy(buffer, 0, newBuffer, 0, length); 472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller buffer = newBuffer; 482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller private long[] buffer = new long[32]; 512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller private int length = 0; 522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller} 53