1ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski/*
2ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Copyright (C) 2011 The Android Open Source Project
3ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *
4ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Licensed under the Apache License, Version 2.0 (the "License");
5ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * you may not use this file except in compliance with the License.
6ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * You may obtain a copy of the License at
7ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *
8ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *      http://www.apache.org/licenses/LICENSE-2.0
9ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *
10ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Unless required by applicable law or agreed to in writing, software
11ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * distributed under the License is distributed on an "AS IS" BASIS,
12ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * See the License for the specific language governing permissions and
14ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * limitations under the License.
15ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski */
16ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
17ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskipackage com.android.tools.layoutlib.create.dataclass;
18ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
19ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskiimport com.android.tools.layoutlib.create.DelegateClassAdapterTest;
20ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
21ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski/**
22ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Test class with an inner class.
23ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski *
24ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Used by {@link DelegateClassAdapterTest}.
25ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski */
26ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskipublic class OuterClass {
27ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    private int mOuterValue = 1;
28ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public OuterClass() {
29ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
30ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
31ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    // Outer.get returns 1 + a + b
32ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    // Note: it's good to have a long or double for testing parameters since they take
33ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    // 2 slots in the stack/locals maps.
34ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public int get(int a, long b) {
35ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        return mOuterValue + a + (int) b;
36ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
37ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
38ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    public class InnerClass {
3944440c3bb1384f220d93dde5d09623ea3d4664b5Diego Perez        public int mInnerId;
4044440c3bb1384f220d93dde5d09623ea3d4664b5Diego Perez
41ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        public InnerClass() {
4244440c3bb1384f220d93dde5d09623ea3d4664b5Diego Perez            mInnerId = 12;
43ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        }
44ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
45ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        // Inner.get returns 2 + 1 + a + b
46ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        public int get(int a, long b) {
47ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski            return 2 + mOuterValue + a + (int) b;
48ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        }
49ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
50ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
51c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez    public static class StaticInnerClass {
5244440c3bb1384f220d93dde5d09623ea3d4664b5Diego Perez        public int mStaticInnerId;
5344440c3bb1384f220d93dde5d09623ea3d4664b5Diego Perez
54c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez        public StaticInnerClass() {
5544440c3bb1384f220d93dde5d09623ea3d4664b5Diego Perez            mStaticInnerId = 4;
56c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez        }
57c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez
58c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez        // StaticInnerClass.get returns 100 + a + b
59c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez        public int get(int a, long b) {
60c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez            return 100 + a + (int) b;
61c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez        }
62c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez    }
63c6162743a2d25364409adc1b850fc112c03e0e7fDiego Perez
64ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    @SuppressWarnings("unused")
65ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    private String privateMethod() {
66ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski        return "outerPrivateMethod";
67ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski    }
68ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski}
69ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski
70