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