1b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang/*
2b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang * Copyright (C) 2012 The Android Open Source Project
3b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang *
4b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang * Licensed under the Apache License, Version 2.0 (the "License");
5b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang * you may not use this file except in compliance with the License.
6b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang * You may obtain a copy of the License at
7b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang *
8b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang *      http://www.apache.org/licenses/LICENSE-2.0
9b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang *
10b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang * Unless required by applicable law or agreed to in writing, software
11b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang * distributed under the License is distributed on an "AS IS" BASIS,
12b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang * See the License for the specific language governing permissions and
14b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang * limitations under the License.
15b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang */
16b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang
17b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Changpackage com.android.gallery3d.util;
18b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang
19b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang// This is an array whose index ranges from min to max (inclusive).
20b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Changpublic class RangeIntArray {
21b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    private int[] mData;
22b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    private int mOffset;
23b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang
24b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    public RangeIntArray(int min, int max) {
25b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang        mData = new int[max - min + 1];
26b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang        mOffset = min;
27b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    }
28b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang
29b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    // Wraps around an existing array
30b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    public RangeIntArray(int[] src, int min, int max) {
31b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang        mData = src;
32b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang        mOffset = min;
33b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    }
34b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang
35b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    public void put(int i, int object) {
36b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang        mData[i - mOffset] = object;
37b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    }
38b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang
39b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    public int get(int i) {
40b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang        return mData[i - mOffset];
41b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    }
42b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang
43b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    public int indexOf(int object) {
44b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang        for (int i = 0; i < mData.length; i++) {
45b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang            if (mData[i] == object) return i + mOffset;
46b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang        }
47b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang        return Integer.MAX_VALUE;
48b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang    }
49b7ec5534c7b539be2397c27cfa5e8b992974c12dChih-Chung Chang}
50