Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/java/lang/reflect/Method/IsDefaultTest.java
38828 views
1
/*
2
* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/*
25
* @test
26
* @bug 8005042
27
* @summary Check behavior of Method.isDefault
28
* @author Joseph D. Darcy
29
*/
30
31
import java.lang.reflect.*;
32
import java.lang.annotation.*;
33
import java.util.*;
34
35
public class IsDefaultTest {
36
public static void main(String... argv) throws Exception {
37
int failures = 0;
38
int visitationCount = 0;
39
40
List<Class<?>> classList = new ArrayList<>();
41
classList.add(TestType1.class);
42
classList.add(TestType2.class);
43
classList.add(TestType3.class);
44
classList.add(TestType4.class);
45
classList.add(TestType2.nestedTestType2.class);
46
classList.add(TestType5.class);
47
classList.add(TestType5.nestedTestType5.class);
48
classList.add(TestType6.class);
49
classList.add(TestType6.nestedTestType6.class);
50
classList.add(TestType7.class);
51
52
for(Class<?> clazz: classList) {
53
for(Method method: clazz.getDeclaredMethods()) {
54
ExpectedIsDefault expectedIsDefault = method.getAnnotation(ExpectedIsDefault.class);
55
if (expectedIsDefault != null) {
56
visitationCount++;
57
boolean expected = expectedIsDefault.value();
58
boolean actual = method.isDefault();
59
60
if (actual != expected) {
61
failures++;
62
System.err.printf("ERROR: On %s expected isDefault of ''%s''; got ''%s''.\n",
63
method.toString(), expected, actual);
64
}
65
}
66
}
67
}
68
69
if (visitationCount == 0) {
70
System.err.println("Test failed because no methods checked.");
71
throw new RuntimeException();
72
}
73
74
if (failures > 0) {
75
System.err.println("Test failed.");
76
throw new RuntimeException();
77
}
78
}
79
}
80
81
interface TestType1 {
82
@ExpectedIsDefault(false)
83
void foo();
84
85
@ExpectedIsDefault(true)
86
default void bar() {}; // Default method
87
88
@ExpectedIsDefault(true)
89
default void bar(int i) {}; // Default method
90
91
@ExpectedIsDefault(true)
92
default void bar(String i) {}; // Default method
93
}
94
95
class TestType2 {
96
@ExpectedIsDefault(false)
97
void bar() {};
98
99
interface nestedTestType2 {
100
@ExpectedIsDefault(true)
101
default void nestedBar() {};
102
}
103
}
104
105
class TestType3 implements TestType1 {
106
@ExpectedIsDefault(false)
107
public void foo(){}
108
109
@ExpectedIsDefault(false)
110
@Override
111
public void bar() {};
112
113
@ExpectedIsDefault(false)
114
@Override
115
public void bar(int i) {};
116
}
117
118
@interface TestType4 {
119
@ExpectedIsDefault(false)
120
String value();
121
122
@ExpectedIsDefault(false)
123
String anotherValue() default "";
124
}
125
126
interface TestType5 {
127
@ExpectedIsDefault(false)
128
abstract void aFoo();
129
130
@ExpectedIsDefault(false)
131
static void sFoo() {};
132
133
@ExpectedIsDefault(true)
134
public default void pBar() {};
135
136
@ExpectedIsDefault(true)
137
public default String sBar() {return "";};
138
139
interface nestedTestType5{
140
@ExpectedIsDefault(false)
141
void nestedFoo();
142
143
@ExpectedIsDefault(true)
144
default void nestedBar() {};
145
}
146
}
147
148
class TestType6{
149
interface nestedTestType6 {
150
@ExpectedIsDefault(true)
151
default void nestedBar() {};
152
153
@ExpectedIsDefault(false)
154
void nestedFoo();
155
}
156
157
@ExpectedIsDefault(false)
158
void foo(nestedTestType6 n) {}
159
}
160
161
class TestType7 implements TestType6.nestedTestType6 {
162
163
@ExpectedIsDefault(false)
164
public void nestedFoo() {}
165
166
@ExpectedIsDefault(false)
167
@Override
168
public void nestedBar() {};
169
}
170
171
@Retention(RetentionPolicy.RUNTIME)
172
@interface ExpectedIsDefault {
173
boolean value();
174
}
175
176