1/*
2 * Copyright (C) 2008 The Android Open Source Project
3 *
4 * Licensed under the Eclipse Public License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.eclipse.org/org/documents/epl-v10.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package mock_android.dummy;
18
19import java.util.ArrayList;
20import java.util.Collection;
21import java.util.Iterator;
22import java.util.List;
23
24public class InnerTest {
25
26    private int mSomeField;
27    private MyStaticInnerClass mInnerInstance;
28    private MyIntEnum mTheIntEnum;
29    private MyGenerics1<int[][], InnerTest, MyIntEnum, float[]> mGeneric1;
30
31    public class NotStaticInner2 extends NotStaticInner1 {
32
33    }
34
35    public class NotStaticInner1 {
36
37        public void someThing() {
38            mSomeField = 2;
39            mInnerInstance = null;
40        }
41
42    }
43
44    private static class MyStaticInnerClass {
45
46    }
47
48    private static class DerivingClass extends InnerTest {
49
50    }
51
52    // enums are a kind of inner static class
53    public enum MyIntEnum {
54        VALUE0(0),
55        VALUE1(1),
56        VALUE2(2);
57
58        MyIntEnum(int myInt) {
59            this.myInt = myInt;
60        }
61        final int myInt;
62    }
63
64    public static class MyGenerics1<T, U, V, W> {
65        public MyGenerics1() {
66            int a = 1;
67        }
68    }
69
70    public <X> void genericMethod1(X a, X[] b) {
71    }
72
73    public <X, Y> void genericMethod2(X a, List<Y> b) {
74    }
75
76    public <X, Y extends InnerTest> void genericMethod3(X a, List<Y> b) {
77    }
78
79    public <T extends InnerTest> void genericMethod4(T[] a, Collection<T> b, Collection<?> c) {
80        Iterator<T> i = b.iterator();
81    }
82
83    public void someMethod(InnerTest self) {
84        mSomeField = self.mSomeField;
85        MyStaticInnerClass m = new MyStaticInnerClass();
86        mInnerInstance = m;
87        mTheIntEnum = null;
88        mGeneric1 = new MyGenerics1();
89        genericMethod4(new DerivingClass[0], new ArrayList<DerivingClass>(), new ArrayList<InnerTest>());
90    }
91}
92