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