1282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/* 2282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Copyright (C) 2008 The Android Open Source Project 3282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 4282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Licensed under the Eclipse Public License, Version 1.0 (the "License"); 5282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * you may not use this file except in compliance with the License. 6282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * You may obtain a copy of the License at 7282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 8282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * http://www.eclipse.org/org/documents/epl-v10.php 9282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 10282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Unless required by applicable law or agreed to in writing, software 11282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 12282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * See the License for the specific language governing permissions and 14282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * limitations under the License. 15282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 16282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 17282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipackage mock_android.dummy; 18282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 19282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport java.util.ArrayList; 20282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport java.util.Collection; 21282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport java.util.Iterator; 2203a057c1af9ca3f125c7924bf0b78da52223d8d3Deepanshu Guptaimport java.util.List; 23282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 24282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipublic class InnerTest { 25282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 26282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski private int mSomeField; 27282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski private MyStaticInnerClass mInnerInstance; 28282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski private MyIntEnum mTheIntEnum; 29282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski private MyGenerics1<int[][], InnerTest, MyIntEnum, float[]> mGeneric1; 30282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 31282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public class NotStaticInner2 extends NotStaticInner1 { 32282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 33282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 34282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 35282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public class NotStaticInner1 { 36282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 37282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void someThing() { 38282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski mSomeField = 2; 39282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski mInnerInstance = null; 40282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 41282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 42282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 43282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 44282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski private static class MyStaticInnerClass { 45282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 46282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 47282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 48282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski private static class DerivingClass extends InnerTest { 49282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 50282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 51282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 52282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // enums are a kind of inner static class 53282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public enum MyIntEnum { 54282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski VALUE0(0), 55282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski VALUE1(1), 56282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski VALUE2(2); 57282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 58282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski MyIntEnum(int myInt) { 59282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski this.myInt = myInt; 60282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 61282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski final int myInt; 62282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 63282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 64282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public static class MyGenerics1<T, U, V, W> { 65282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public MyGenerics1() { 66282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski int a = 1; 67282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 68282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 69282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 7003a057c1af9ca3f125c7924bf0b78da52223d8d3Deepanshu Gupta public <X> void genericMethod1(X a, X[] b) { 71282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 72282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 73282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public <X, Y> void genericMethod2(X a, List<Y> b) { 74282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 75282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 7603a057c1af9ca3f125c7924bf0b78da52223d8d3Deepanshu Gupta public <X, Y extends InnerTest> void genericMethod3(X a, List<Y> b) { 77282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 78282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 79282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public <T extends InnerTest> void genericMethod4(T[] a, Collection<T> b, Collection<?> c) { 80282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski Iterator<T> i = b.iterator(); 81282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 82282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 83282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void someMethod(InnerTest self) { 84282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski mSomeField = self.mSomeField; 85282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski MyStaticInnerClass m = new MyStaticInnerClass(); 86282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski mInnerInstance = m; 87282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski mTheIntEnum = null; 88282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski mGeneric1 = new MyGenerics1(); 8903a057c1af9ca3f125c7924bf0b78da52223d8d3Deepanshu Gupta genericMethod4(new DerivingClass[0], new ArrayList<DerivingClass>(), new ArrayList<InnerTest>()); 90282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 91282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski} 92