1104c45677660586026a7e74ef8c47d396403d50eMichael Jurka/* 2104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * Copyright (C) 2010 The Android Open Source Project 3104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * 4104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * Licensed under the Apache License, Version 2.0 (the "License"); 5104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * you may not use this file except in compliance with the License. 6104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * You may obtain a copy of the License at 7104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * 8104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * http://www.apache.org/licenses/LICENSE-2.0 9104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * 10104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * Unless required by applicable law or agreed to in writing, software 11104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * distributed under the License is distributed on an "AS IS" BASIS, 12104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * See the License for the specific language governing permissions and 14104c45677660586026a7e74ef8c47d396403d50eMichael Jurka * limitations under the License. 15104c45677660586026a7e74ef8c47d396403d50eMichael Jurka */ 16104c45677660586026a7e74ef8c47d396403d50eMichael Jurka 17104c45677660586026a7e74ef8c47d396403d50eMichael Jurkapackage com.android.gallery3d.util; 18104c45677660586026a7e74ef8c47d396403d50eMichael Jurka 19104c45677660586026a7e74ef8c47d396403d50eMichael Jurkapublic class IntArray { 20104c45677660586026a7e74ef8c47d396403d50eMichael Jurka private static final int INIT_CAPACITY = 8; 21104c45677660586026a7e74ef8c47d396403d50eMichael Jurka 22104c45677660586026a7e74ef8c47d396403d50eMichael Jurka private int mData[] = new int[INIT_CAPACITY]; 23104c45677660586026a7e74ef8c47d396403d50eMichael Jurka private int mSize = 0; 24104c45677660586026a7e74ef8c47d396403d50eMichael Jurka 25104c45677660586026a7e74ef8c47d396403d50eMichael Jurka public void add(int value) { 26104c45677660586026a7e74ef8c47d396403d50eMichael Jurka if (mData.length == mSize) { 27104c45677660586026a7e74ef8c47d396403d50eMichael Jurka int temp[] = new int[mSize + mSize]; 28104c45677660586026a7e74ef8c47d396403d50eMichael Jurka System.arraycopy(mData, 0, temp, 0, mSize); 29104c45677660586026a7e74ef8c47d396403d50eMichael Jurka mData = temp; 30104c45677660586026a7e74ef8c47d396403d50eMichael Jurka } 31104c45677660586026a7e74ef8c47d396403d50eMichael Jurka mData[mSize++] = value; 32104c45677660586026a7e74ef8c47d396403d50eMichael Jurka } 33104c45677660586026a7e74ef8c47d396403d50eMichael Jurka 34104c45677660586026a7e74ef8c47d396403d50eMichael Jurka public int removeLast() { 35104c45677660586026a7e74ef8c47d396403d50eMichael Jurka mSize--; 36104c45677660586026a7e74ef8c47d396403d50eMichael Jurka return mData[mSize]; 37104c45677660586026a7e74ef8c47d396403d50eMichael Jurka } 38104c45677660586026a7e74ef8c47d396403d50eMichael Jurka 39104c45677660586026a7e74ef8c47d396403d50eMichael Jurka public int size() { 40104c45677660586026a7e74ef8c47d396403d50eMichael Jurka return mSize; 41104c45677660586026a7e74ef8c47d396403d50eMichael Jurka } 42104c45677660586026a7e74ef8c47d396403d50eMichael Jurka 43104c45677660586026a7e74ef8c47d396403d50eMichael Jurka // For testing only 44104c45677660586026a7e74ef8c47d396403d50eMichael Jurka public int[] toArray(int[] result) { 45104c45677660586026a7e74ef8c47d396403d50eMichael Jurka if (result == null || result.length < mSize) { 46104c45677660586026a7e74ef8c47d396403d50eMichael Jurka result = new int[mSize]; 47104c45677660586026a7e74ef8c47d396403d50eMichael Jurka } 48104c45677660586026a7e74ef8c47d396403d50eMichael Jurka System.arraycopy(mData, 0, result, 0, mSize); 49104c45677660586026a7e74ef8c47d396403d50eMichael Jurka return result; 50104c45677660586026a7e74ef8c47d396403d50eMichael Jurka } 51104c45677660586026a7e74ef8c47d396403d50eMichael Jurka 52104c45677660586026a7e74ef8c47d396403d50eMichael Jurka public int[] getInternalArray() { 53104c45677660586026a7e74ef8c47d396403d50eMichael Jurka return mData; 54104c45677660586026a7e74ef8c47d396403d50eMichael Jurka } 55104c45677660586026a7e74ef8c47d396403d50eMichael Jurka 56104c45677660586026a7e74ef8c47d396403d50eMichael Jurka public void clear() { 57104c45677660586026a7e74ef8c47d396403d50eMichael Jurka mSize = 0; 58104c45677660586026a7e74ef8c47d396403d50eMichael Jurka if (mData.length != INIT_CAPACITY) mData = new int[INIT_CAPACITY]; 59104c45677660586026a7e74ef8c47d396403d50eMichael Jurka } 60104c45677660586026a7e74ef8c47d396403d50eMichael Jurka} 61