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