001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: /**
019: * @author Serguei S.Zapreyev
020: * @version $Revision$
021: */package java.lang;
022:
023: /**
024: * Area for supposed testing is arrays returning mrthods for:
025: * - classes, interfaces
026: * - methods
027: * - constructors
028: **/
029:
030: import java.lang.reflect.*;
031:
032: import junit.framework.TestCase;
033:
034: /*
035: * Created on May 03, 2006
036: *
037: * This ClassGenericsTest3 class is used to test the Core API Class, Method, Constructor classes
038: *
039: */
040:
041: /**
042: * ###############################################################################
043: * ###############################################################################
044: * TODO: 1.
045: * ###############################################################################
046: * ###############################################################################
047: */
048:
049: @SuppressWarnings(value={"all"})
050: public class ClassGenericsTest3<$X$> extends TestCase {
051: class $Mc3$01 {
052: };
053:
054: interface $MI3$01<$T$0 extends java.io.Serializable> {
055: };
056:
057: interface $MI3$02<_T$_1$ extends $MI3$01> {
058: };
059:
060: interface $MI3$03<T2$> extends $MI3$01 {
061: };
062:
063: interface $MI3$04<T$2> {
064: interface $MI3$05<_T$21_, _$T22> {
065: };
066: };
067:
068: public class $Mc3$02<$_T3_$ extends ClassGenericsTest3> {
069: public class $Mc3$04<T5 extends ClassGenericsTest3> {
070: };
071: };
072:
073: public class $Mc4$<_> {
074: public class $Mc5<_> {
075: };
076:
077: public class Mc5<_> {
078: };
079: };
080:
081: public interface $Mi4$<_> {
082: public interface $$$$$Mi5<_> {
083: };
084:
085: public interface $$$$Mi5<_> {
086: };
087:
088: public interface $$$Mi5<_> {
089: };
090:
091: public interface $$Mi5<_> {
092: };
093:
094: public interface $Mi5<_> {
095: };
096:
097: public interface Mi5<_> {
098: };
099:
100: public interface Mi5$<_> {
101: };
102: };
103:
104: public interface $Mi4<_> {
105: /* //compiler errors are risen here:
106: public interface $$Mi5<_> {
107: };
108: public interface $Mi5<_> {
109: };
110: public interface Mi5<_> {
111: };
112: public interface Mi5$<_> {
113: };
114: */
115: };
116:
117: //class C1<$_T4_$_ extends $Mc4$.$Mc5 &$Mi4$.$Mi5 &$Mi4$.Mi5 &$Mi4$> extends $Mc4$<? super Class>.Mc5<Class> implements $Mi4$<$Mi4$.$Mi5<java.io.Serializable>>, $Mi4$.Mi5$<Cloneable>, $Mi4$.Mi5 {};
118: //class C1<$_T4_$_ extends $Mc4$<Integer>.$Mc5<Integer> &$Mi4$.$Mi5 &$Mi4$.Mi5 &$Mi4$> extends $Mc4$<Float>.Mc5<Class> implements $Mi4$.Mi5 {};
119: class C1<$_T4_$_ extends $Mc4$<Integer>.$Mc5<Integer> & $Mi4$.$$$$$Mi5 & $Mi4$.$$$$Mi5 & $Mi4$.$$$Mi5 & $Mi4$.$$Mi5 & $Mi4$.$Mi5 & $Mi4$.Mi5 & $Mi4$>
120: implements $Mi4$.Mi5 {
121: };
122:
123: public void test_0() {
124: Type ap[];
125: TypeVariable tv;
126: Type ab[];
127: ap = $Mc4$.class.getTypeParameters();
128: ap = $Mc4$.$Mc5.class.getTypeParameters();
129: ap = $Mc4$.Mc5.class.getTypeParameters();
130: ap = $Mi4$.class.getTypeParameters();
131: ap = $Mi4$.$Mi5.class.getTypeParameters();
132: ap = $Mi4$.Mi5.class.getTypeParameters();
133: ap = C1.class.getTypeParameters();
134: if (ap.length != 1)
135: fail("test_2, case 001 FAILED: " + ap.length);
136: tv = (TypeVariable) ap[0];
137: if (!tv.getName().equals("$_T4_$_"))
138: fail("test_2, case 002 FAILED: " + tv.getName());
139: if (!((Class) tv.getGenericDeclaration()).getName().equals(
140: "java.lang.ClassGenericsTest3$C1"))
141: fail("test_2, case 003 FAILED: "
142: + ((Class) tv.getGenericDeclaration()).getName());
143: ab = tv.getBounds();
144: if (!((Class) ((ParameterizedType) ab[0]).getRawType())
145: .getName().equals(
146: "java.lang.ClassGenericsTest3$$Mc4$$$Mc5"))
147: fail("test_2, case 004 FAILED: "
148: + ((Class) ((ParameterizedType) ab[0]).getRawType())
149: .getName());
150: //if(RuntimeAdditionalSupport1.openingFlag || RuntimeAdditionalTest0.os.equals("Lin")) {
151: if (true) {
152: // is it a bug?:
153: /*???*///if(!((ParameterizedType)ab[0]).getOwnerType().toString().equals("java.lang.ClassGenericsTest3$$Mc4$<java.lang.Integer>.$Mc5<java.lang.Integer>")) fail("test_2, case 005 FAILED: "+((ParameterizedType)ab[0]).getOwnerType().toString());
154: /*???*/if (!((ParameterizedType) ab[0])
155: .getOwnerType()
156: .toString()
157: .equals(
158: "java.lang.ClassGenericsTest3<$X$>.$Mc4$<java.lang.Integer>"))
159: fail("test_2, case 005 FAILED: "
160: + ((ParameterizedType) ab[0]).getOwnerType()
161: .toString());
162: } else {
163: // but it is the bug in eclipse compiler?:
164: if (!((ParameterizedType) ab[0])
165: .getOwnerType()
166: .toString()
167: .equals(
168: "java.lang.ClassGenericsTest3.$Mc4$<java.lang.Integer>"))
169: fail("test_2, case 005 FAILED: "
170: + ((ParameterizedType) ab[0]).getOwnerType()
171: .toString());
172: }
173: if (!((Class) ab[1]).getName().equals(
174: "java.lang.ClassGenericsTest3$$Mi4$$$$$$$Mi5")
175: || !((Class) ab[1]).getSimpleName().equals("$$$$$Mi5"))
176: fail("test_2, case 006 FAILED: "
177: + ((Class) ab[1]).getName() + "|"
178: + ((Class) ab[2]).getSimpleName());
179: if (!((Class) ab[2]).getName().equals(
180: "java.lang.ClassGenericsTest3$$Mi4$$$$$$Mi5")
181: || !((Class) ab[2]).getSimpleName().equals("$$$$Mi5"))
182: fail("test_2, case 006 FAILED: "
183: + ((Class) ab[1]).getName() + "|"
184: + ((Class) ab[2]).getSimpleName());
185: if (!((Class) ab[3]).getName().equals(
186: "java.lang.ClassGenericsTest3$$Mi4$$$$$Mi5")
187: || !((Class) ab[3]).getSimpleName().equals("$$$Mi5"))
188: fail("test_2, case 006 FAILED: "
189: + ((Class) ab[1]).getName() + "|"
190: + ((Class) ab[2]).getSimpleName());
191: if (!((Class) ab[4]).getName().equals(
192: "java.lang.ClassGenericsTest3$$Mi4$$$$Mi5")
193: || !((Class) ab[4]).getSimpleName().equals("$$Mi5"))
194: fail("test_2, case 006 FAILED: "
195: + ((Class) ab[1]).getName() + "|"
196: + ((Class) ab[2]).getSimpleName());
197: if (!((Class) ab[5]).getName().equals(
198: "java.lang.ClassGenericsTest3$$Mi4$$$Mi5")
199: || !((Class) ab[5]).getSimpleName().equals("$Mi5"))
200: fail("test_2, case 006 FAILED: "
201: + ((Class) ab[1]).getName() + "|"
202: + ((Class) ab[2]).getSimpleName());
203: if (!((Class) ab[6]).getName().equals(
204: "java.lang.ClassGenericsTest3$$Mi4$$Mi5")
205: || !((Class) ab[6]).getSimpleName().equals("Mi5"))
206: fail("test_2, case 007 FAILED: "
207: + ((Class) ab[2]).getName() + "|"
208: + ((Class) ab[2]).getSimpleName());
209: if (!((Class) ab[7]).getName().equals(
210: "java.lang.ClassGenericsTest3$$Mi4$"))
211: fail("test_2, case 008 FAILED: "
212: + ((Class) ab[7]).getName());
213: }
214:
215: class $Mc3$03<$_T4_$_ extends Thread & java.io.Serializable & Cloneable>
216: extends
217: java.lang.ClassGenericsTest3<? super Class>.$Mc3$02<ClassGenericsTest3>
218: implements $MI3$02<$MI3$03<java.io.Serializable>>,
219: $MI3$03<$MI3$03<Cloneable>>, $MI3$04.$MI3$05<Type, Type> {
220: };
221:
222: /**
223: * use "$" symbol in identifiers for generalized member class
224: */
225: public void test_2() {
226: Type ap[];
227: TypeVariable tv;
228: Type ab[];
229: Type ai[];
230: Type aa[];
231: Type aa2[];
232: Type oc;
233: WildcardType wc;
234: Type aa3[];
235: ap = $Mc3$03.class.getTypeParameters();
236: if (ap.length != 1)
237: fail("test_2, case 001 FAILED: " + ap.length);
238: tv = (TypeVariable) ap[0];
239: if (!tv.getName().equals("$_T4_$_"))
240: fail("test_2, case 002 FAILED: " + tv.getName());
241: if (!((Class) tv.getGenericDeclaration()).getName().equals(
242: "java.lang.ClassGenericsTest3$$Mc3$03"))
243: fail("test_2, case 003 FAILED: "
244: + ((Class) tv.getGenericDeclaration()).getName());
245: ab = tv.getBounds();
246: if (!((Class) ab[0]).getName().equals("java.lang.Thread"))
247: fail("test_2, case 004 FAILED: "
248: + ((Class) ab[0]).getName());
249: if (!((Class) ab[1]).getName().equals("java.io.Serializable"))
250: fail("test_2, case 005 FAILED: "
251: + ((Class) ab[1]).getName());
252: if (!((Class) ab[2]).getName().equals("java.lang.Cloneable"))
253: fail("test_2, case 006 FAILED: "
254: + ((Class) ab[2]).getName());
255: //////////////////////////////////////////////////////////////////////////////////////////////
256: ai = $Mc3$03.class.getGenericInterfaces();
257: if (ai.length != 3)
258: fail("test_2, case 007 FAILED: " + ai.length);
259: if (!((Class) ((ParameterizedType) ai[0]).getRawType())
260: .getName().equals(
261: "java.lang.ClassGenericsTest3$$MI3$02"))
262: fail("test_2, case 008 FAILED: "
263: + ((Class) ((ParameterizedType) ai[0]).getRawType())
264: .getName());
265: if (!((Class) ((ParameterizedType) ai[0]).getOwnerType())
266: .getName().equals("java.lang.ClassGenericsTest3"))
267: fail("test_2, case 009 FAILED: "
268: + ((Class) ((ParameterizedType) ai[0])
269: .getOwnerType()).getName());
270: aa = ((ParameterizedType) ai[0]).getActualTypeArguments();
271: if (aa.length != 1)
272: fail("test_2, case 010 FAILED: " + aa.length);
273: if (!((Class) ((ParameterizedType) aa[0]).getRawType())
274: .getName().equals(
275: "java.lang.ClassGenericsTest3$$MI3$03"))
276: fail("test_2, case 011 FAILED: "
277: + ((Class) ((ParameterizedType) aa[0]).getRawType())
278: .getName());
279: if (!((Class) ((ParameterizedType) aa[0]).getOwnerType())
280: .getName().equals("java.lang.ClassGenericsTest3"))
281: fail("test_2, case 012 FAILED: "
282: + ((Class) ((ParameterizedType) aa[0])
283: .getOwnerType()).getName());
284: aa2 = ((ParameterizedType) aa[0]).getActualTypeArguments(); //java.io.Serializable
285: if (aa2.length != 1)
286: fail("test_2, case 013 FAILED: " + aa.length);
287: if (!((Class) aa2[0]).getName().equals("java.io.Serializable"))
288: fail("test_2, case 014 FAILED: "
289: + ((Class) ((ParameterizedType) aa2[0])
290: .getRawType()).getName());
291:
292: if (!((Class) ((ParameterizedType) ai[1]).getRawType())
293: .getName().equals(
294: "java.lang.ClassGenericsTest3$$MI3$03"))
295: fail("test_2, case 015 FAILED: "
296: + ((Class) ((ParameterizedType) ai[1]).getRawType())
297: .getName());
298: if (!((Class) ((ParameterizedType) ai[1]).getOwnerType())
299: .getName().equals("java.lang.ClassGenericsTest3"))
300: fail("test_2, case 016 FAILED: "
301: + ((Class) ((ParameterizedType) ai[1])
302: .getOwnerType()).getName());
303: aa = ((ParameterizedType) ai[1]).getActualTypeArguments();
304: if (aa.length != 1)
305: fail("test_2, case 017 FAILED: " + aa.length);
306: if (!((Class) ((ParameterizedType) aa[0]).getRawType())
307: .getName().equals(
308: "java.lang.ClassGenericsTest3$$MI3$03"))
309: fail("test_2, case 018 FAILED: "
310: + ((Class) ((ParameterizedType) aa[0]).getRawType())
311: .getName());
312: if (!((Class) ((ParameterizedType) aa[0]).getOwnerType())
313: .getName().equals("java.lang.ClassGenericsTest3"))
314: fail("test_2, case 019 FAILED: "
315: + ((Class) ((ParameterizedType) aa[0])
316: .getOwnerType()).getName());
317: aa2 = ((ParameterizedType) aa[0]).getActualTypeArguments(); //java.lang.Cloneable
318: if (aa2.length != 1)
319: fail("test_2, case 020 FAILED: " + aa.length);
320: if (!((Class) aa2[0]).getName().equals("java.lang.Cloneable"))
321: fail("test_2, case 021 FAILED: "
322: + ((Class) ((ParameterizedType) aa2[0])
323: .getRawType()).getName());
324:
325: if (!((Class) ((ParameterizedType) ai[2]).getRawType())
326: .getName().equals(
327: "java.lang.ClassGenericsTest3$$MI3$04$$MI3$05"))
328: fail("test_2, case 022 FAILED: "
329: + ((Class) ((ParameterizedType) ai[2]).getRawType())
330: .getName());
331: if (!((Class) ((ParameterizedType) ai[2]).getOwnerType())
332: .getName().equals(
333: "java.lang.ClassGenericsTest3$$MI3$04"))
334: fail("test_2, case 023 FAILED: "
335: + ((Class) ((ParameterizedType) ai[2])
336: .getOwnerType()).getName());
337: aa = ((ParameterizedType) ai[2]).getActualTypeArguments();
338: if (aa.length != 2)
339: fail("test_2, case 002 FAILED: " + aa.length);
340: if (!((Class) aa[0]).getName().equals("java.lang.reflect.Type"))
341: fail("test_2, case 024 FAILED: "
342: + ((Class) ((ParameterizedType) aa[0]).getRawType())
343: .getName());
344: if (!((Class) aa[1]).getName().equals("java.lang.reflect.Type"))
345: fail("test_2, case 025 FAILED: "
346: + ((Class) ((ParameterizedType) aa[1]).getRawType())
347: .getName());
348:
349: //////////////////////////////////////////////////////////////////////////////////////////////
350: if (!($Mc3$03.class.getGenericSuperclass() instanceof java.lang.reflect.ParameterizedType))
351: fail("test_2, case 026 FAILED: "
352: + $Mc3$03.class.getGenericSuperclass());
353: if (!((Class) ((ParameterizedType) $Mc3$03.class
354: .getGenericSuperclass()).getRawType())
355: .equals($Mc3$02.class))
356: fail("test_2, case 027 FAILED: "
357: + $Mc3$03.class.getGenericSuperclass());
358: aa = ((ParameterizedType) $Mc3$03.class.getGenericSuperclass())
359: .getActualTypeArguments();
360: if (aa.length != 1)
361: fail("test_2, case 029 FAILED: " + aa.length);
362: if (!((Class) aa[0]).getName().equals(
363: "java.lang.ClassGenericsTest3"))
364: fail("test_2, case 030 FAILED: "
365: + ((Class) aa[0]).getName());
366: oc = ((ParameterizedType) $Mc3$03.class.getGenericSuperclass())
367: .getOwnerType();
368: if (!((Class) ((ParameterizedType) oc).getRawType())
369: .equals(java.lang.ClassGenericsTest3.class))
370: fail("test_2, case 031 FAILED: "
371: + $Mc3$03.class.getGenericSuperclass());
372: if (((ParameterizedType) oc).getOwnerType() != null)
373: fail("test_2, case 032 FAILED: "
374: + ((ParameterizedType) oc).getOwnerType());
375: aa = ((ParameterizedType) oc).getActualTypeArguments();
376: if (aa.length != 1)
377: fail("test_2, case 033 FAILED: " + aa.length);
378: wc = (WildcardType) aa[0];
379: aa3 = wc.getLowerBounds();
380: if (aa3.length != 1)
381: fail("test_2, case 034 FAILED: " + aa3.length);
382: if (!((Class) aa3[0]).equals(Class.class))
383: fail("test_2, case 035 FAILED: " + ((Class) aa3[0]));
384: aa3 = wc.getUpperBounds();
385: if (aa3.length != 1)
386: fail("test_2, case 036 FAILED: " + aa3.length);
387: if (!((Class) aa3[0]).equals(Object.class))
388: fail("test_2, case 037 FAILED: " + ((Class) aa3[0]));
389: }
390:
391: /**
392: * use "$" symbol in identifiers for generalized type fields
393: */
394: class $Mc3$05 extends Thread implements java.io.Serializable,
395: Cloneable {
396: private static final long serialVersionUID = 0L;
397: };
398:
399: public $Mc3$03<$Mc3$05> fld0;
400: public ClassGenericsTest3<? super Class>.$Mc3$02<ClassGenericsTest3>.$Mc3$04<ClassGenericsTest3> f0;
401: public $X$ f111;
402: public ClassGenericsTest3 f112;
403:
404: public void test_3() {
405: Type ft = null;
406: try {
407: ft = java.lang.ClassGenericsTest3.class.getField("fld0")
408: .getGenericType();
409: //{boolean b = true; if(b) return;}
410: } catch (NoSuchFieldException e) {
411: fail("test_3, case 001 FAILED: ");
412: }
413: Type oc1 = (ParameterizedType) ft;
414: if (!((Class) ((ParameterizedType) oc1).getRawType())
415: .equals(java.lang.ClassGenericsTest3.$Mc3$03.class))
416: fail("test_3, case 002 FAILED: "
417: + ((Class) ((ParameterizedType) oc1).getRawType()));
418: if (RuntimeAdditionalSupport1.openingFlag) {
419: if (!((ParameterizedType) oc1).getOwnerType().toString()
420: .equals("java.lang.ClassGenericsTest3<$X$>"))
421: fail("test_3, case 003 FAILED: "
422: + ((ParameterizedType) oc1).getOwnerType()
423: .toString());
424: }
425: Type aa0[] = ((ParameterizedType) oc1).getActualTypeArguments();
426: if (aa0.length != 1)
427: fail("test_3, case 004 FAILED: " + aa0.length);
428: if (!((ParameterizedType) aa0[0]).getRawType().equals(
429: $Mc3$05.class))
430: fail("test_3, case 005 FAILED: " + (/*(Class)*/aa0[0]));
431: if (!((ParameterizedType) aa0[0]).getOwnerType().toString()
432: .equals("java.lang.ClassGenericsTest3<$X$>"))
433: fail("test_3, case 006 FAILED: " + (/*(Class)*/aa0[0]));
434:
435: Class c = (Class) ((ParameterizedType) ft).getRawType();
436:
437: Type ap[] = c.getTypeParameters();
438: if (ap.length != 1)
439: fail("test_3, case 007 FAILED: " + ap.length);
440: TypeVariable tv = (TypeVariable) ap[0];
441: if (!tv.getName().equals("$_T4_$_"))
442: fail("test_3, case 008 FAILED: " + tv.getName());
443: if (!((Class) tv.getGenericDeclaration()).getName().equals(
444: "java.lang.ClassGenericsTest3$$Mc3$03"))
445: fail("test_3, case 009 FAILED: "
446: + ((Class) tv.getGenericDeclaration()).getName());
447: Type ab[] = tv.getBounds();
448: if (!((Class) ab[0]).getName().equals("java.lang.Thread"))
449: fail("test_3, case 010 FAILED: "
450: + ((Class) ab[0]).getName());
451: if (!((Class) ab[1]).getName().equals("java.io.Serializable"))
452: fail("test_3, case 011 FAILED: "
453: + ((Class) ab[1]).getName());
454: if (!((Class) ab[2]).getName().equals("java.lang.Cloneable"))
455: fail("test_3, case 012 FAILED: "
456: + ((Class) ab[2]).getName());
457: //////////////////////////////////////////////////////////////////////////////////////////////
458: Type ai[] = c.getGenericInterfaces();
459: if (ai.length != 3)
460: fail("test_3, case 013 FAILED: " + ai.length);
461: if (!((Class) ((ParameterizedType) ai[0]).getRawType())
462: .getName().equals(
463: "java.lang.ClassGenericsTest3$$MI3$02"))
464: fail("test_3, case 014 FAILED: "
465: + ((Class) ((ParameterizedType) ai[0]).getRawType())
466: .getName());
467: if (!((Class) ((ParameterizedType) ai[0]).getOwnerType())
468: .getName().equals("java.lang.ClassGenericsTest3"))
469: fail("test_3, case 015 FAILED: "
470: + ((Class) ((ParameterizedType) ai[0])
471: .getOwnerType()).getName());
472: Type aa[] = ((ParameterizedType) ai[0])
473: .getActualTypeArguments();
474: if (aa.length != 1)
475: fail("test_3, case 016 FAILED: " + aa.length);
476: if (!((Class) ((ParameterizedType) aa[0]).getRawType())
477: .getName().equals(
478: "java.lang.ClassGenericsTest3$$MI3$03"))
479: fail("test_3, case 017 FAILED: "
480: + ((Class) ((ParameterizedType) aa[0]).getRawType())
481: .getName());
482: if (!((Class) ((ParameterizedType) aa[0]).getOwnerType())
483: .getName().equals("java.lang.ClassGenericsTest3"))
484: fail("test_3, case 018 FAILED: "
485: + ((Class) ((ParameterizedType) aa[0])
486: .getOwnerType()).getName());
487: Type aa2[] = ((ParameterizedType) aa[0])
488: .getActualTypeArguments(); //java.io.Serializable
489: if (aa2.length != 1)
490: fail("test_3, case 019 FAILED: " + aa.length);
491: if (!((Class) aa2[0]).getName().equals("java.io.Serializable"))
492: fail("test_3, case 020 FAILED: "
493: + ((Class) ((ParameterizedType) aa2[0])
494: .getRawType()).getName());
495:
496: if (!((Class) ((ParameterizedType) ai[1]).getRawType())
497: .getName().equals(
498: "java.lang.ClassGenericsTest3$$MI3$03"))
499: fail("test_3, case 021 FAILED: "
500: + ((Class) ((ParameterizedType) ai[1]).getRawType())
501: .getName());
502: if (!((Class) ((ParameterizedType) ai[1]).getOwnerType())
503: .getName().equals("java.lang.ClassGenericsTest3"))
504: fail("test_3, case 022 FAILED: "
505: + ((Class) ((ParameterizedType) ai[1])
506: .getOwnerType()).getName());
507: aa = ((ParameterizedType) ai[1]).getActualTypeArguments();
508: if (aa.length != 1)
509: fail("test_3, case 023 FAILED: " + aa.length);
510: if (!((Class) ((ParameterizedType) aa[0]).getRawType())
511: .getName().equals(
512: "java.lang.ClassGenericsTest3$$MI3$03"))
513: fail("test_3, case 024 FAILED: "
514: + ((Class) ((ParameterizedType) aa[0]).getRawType())
515: .getName());
516: if (!((Class) ((ParameterizedType) aa[0]).getOwnerType())
517: .getName().equals("java.lang.ClassGenericsTest3"))
518: fail("test_3, case 025 FAILED: "
519: + ((Class) ((ParameterizedType) aa[0])
520: .getOwnerType()).getName());
521: aa2 = ((ParameterizedType) aa[0]).getActualTypeArguments(); //java.lang.Cloneable
522: if (aa2.length != 1)
523: fail("test_3, case 026 FAILED: " + aa.length);
524: if (!((Class) aa2[0]).getName().equals("java.lang.Cloneable"))
525: fail("test_3, case 027 FAILED: "
526: + ((Class) ((ParameterizedType) aa2[0])
527: .getRawType()).getName());
528:
529: if (!((Class) ((ParameterizedType) ai[2]).getRawType())
530: .getName().equals(
531: "java.lang.ClassGenericsTest3$$MI3$04$$MI3$05"))
532: fail("test_3, case 028 FAILED: "
533: + ((Class) ((ParameterizedType) ai[2]).getRawType())
534: .getName());
535: if (!((Class) ((ParameterizedType) ai[2]).getOwnerType())
536: .getName().equals(
537: "java.lang.ClassGenericsTest3$$MI3$04"))
538: fail("test_3, case 029 FAILED: "
539: + ((Class) ((ParameterizedType) ai[2])
540: .getOwnerType()).getName());
541: aa = ((ParameterizedType) ai[2]).getActualTypeArguments();
542: if (aa.length != 2)
543: fail("test_3, case 030 FAILED: " + aa.length);
544: if (!((Class) aa[0]).getName().equals("java.lang.reflect.Type"))
545: fail("test_3, case 031 FAILED: "
546: + ((Class) ((ParameterizedType) aa[0]).getRawType())
547: .getName());
548: if (!((Class) aa[1]).getName().equals("java.lang.reflect.Type"))
549: fail("test_3, case 032 FAILED: "
550: + ((Class) ((ParameterizedType) aa[1]).getRawType())
551: .getName());
552:
553: //////////////////////////////////////////////////////////////////////////////////////////////
554: if (!(c.getGenericSuperclass() instanceof java.lang.reflect.ParameterizedType))
555: fail("test_3, case 033 FAILED: "
556: + $Mc3$03.class.getGenericSuperclass());
557: if (!((Class) ((ParameterizedType) c.getGenericSuperclass())
558: .getRawType()).equals($Mc3$02.class))
559: fail("test_3, case 034 FAILED: "
560: + $Mc3$03.class.getGenericSuperclass());
561: aa = ((ParameterizedType) c.getGenericSuperclass())
562: .getActualTypeArguments();
563: if (aa.length != 1)
564: fail("test_3, case 029 FAILED: " + aa.length);
565: System.out.println(aa[0]);
566: if (!((Class) aa[0]).getName().equals(
567: "java.lang.ClassGenericsTest3"))
568: fail("test_3, case 036 FAILED: "
569: + ((Class) aa[0]).getName());
570: Type oc = ((ParameterizedType) c.getGenericSuperclass())
571: .getOwnerType();
572: if (!((Class) ((ParameterizedType) oc).getRawType())
573: .equals(java.lang.ClassGenericsTest3.class))
574: fail("test_3, case 037 FAILED: "
575: + $Mc3$03.class.getGenericSuperclass());
576: if (((ParameterizedType) oc).getOwnerType() != null)
577: fail("test_3, case 038 FAILED: "
578: + ((ParameterizedType) oc).getOwnerType());
579: aa = ((ParameterizedType) oc).getActualTypeArguments();
580: if (aa.length != 1)
581: fail("test_3, case 039 FAILED: " + aa.length);
582: WildcardType wc = (WildcardType) aa[0];
583: Type aa3[] = wc.getLowerBounds();
584: if (aa3.length != 1)
585: fail("test_3, case 040 FAILED: " + aa3.length);
586: if (!((Class) aa3[0]).equals(Class.class))
587: fail("test_3, case 041 FAILED: " + ((Class) aa3[0]));
588: aa3 = wc.getUpperBounds();
589: if (aa3.length != 1)
590: fail("test_3, case 042 FAILED: " + aa3.length);
591: if (!((Class) aa3[0]).equals(Object.class))
592: fail("test_3, case 043 FAILED: " + ((Class) aa3[0]));
593:
594: //////////////////////////////////////////////////////////////////////////////////////////////
595: try {
596: ft = java.lang.ClassGenericsTest3.class.getField("f0")
597: .getGenericType();
598: } catch (NoSuchFieldException e) {
599: fail("test_3, case 044 FAILED: ");
600: }
601: oc1 = (ParameterizedType) ft;
602: if (!((Class) ((ParameterizedType) oc1).getRawType())
603: .equals(java.lang.ClassGenericsTest3.$Mc3$02.$Mc3$04.class))
604: fail("test_3, case 045 FAILED: "
605: + ((Class) ((ParameterizedType) oc1).getRawType()));
606: if (!((ParameterizedType) oc1)
607: .getOwnerType()
608: .toString()
609: .equals(
610: "java.lang.ClassGenericsTest3<? super java.lang.Class>.$Mc3$02<java.lang.ClassGenericsTest3>"))
611: fail("test_3, case 046 FAILED: "
612: + ((ParameterizedType) oc1).getOwnerType()
613: .toString());
614: aa0 = ((ParameterizedType) oc1).getActualTypeArguments();
615: if (aa0.length != 1)
616: fail("test_3, case 047 FAILED: " + aa0.length);
617: if (!((Class) aa0[0]).equals(ClassGenericsTest3.class))
618: fail("test_3, case 048 FAILED: " + (/*(Class)*/aa0[0]));
619:
620: if (!((Class) ((ParameterizedType) ((ParameterizedType) oc1)
621: .getOwnerType()).getRawType())
622: .equals(java.lang.ClassGenericsTest3.$Mc3$02.class))
623: fail("test_3, case 049 FAILED: "
624: + ((Class) ((ParameterizedType) oc1).getRawType()));
625: aa0 = ((ParameterizedType) ((ParameterizedType) oc1)
626: .getOwnerType()).getActualTypeArguments();
627: if (aa0.length != 1)
628: fail("test_3, case 050 FAILED: " + aa0.length);
629: if (!((Class) aa0[0]).equals(ClassGenericsTest3.class))
630: fail("test_3, case 051 FAILED: " + (/*(Class)*/aa0[0]));
631: if (!((ParameterizedType) ((ParameterizedType) oc1)
632: .getOwnerType())
633: .getOwnerType()
634: .toString()
635: .equals(
636: "java.lang.ClassGenericsTest3<? super java.lang.Class>"))
637: fail("test_3, case 052 FAILED: "
638: + ((Class) ((ParameterizedType) oc1).getRawType()));
639: if (!((Class) ((ParameterizedType) ((ParameterizedType) ((ParameterizedType) oc1)
640: .getOwnerType()).getOwnerType()).getRawType())
641: .equals(java.lang.ClassGenericsTest3.class))
642: fail("test_3, case 053 FAILED: "
643: + ((Class) ((ParameterizedType) oc1).getRawType()));
644:
645: aa0 = ((ParameterizedType) ((ParameterizedType) ((ParameterizedType) oc1)
646: .getOwnerType()).getOwnerType())
647: .getActualTypeArguments();
648: if (aa0.length != 1)
649: fail("test_3, case 054 FAILED: " + aa0.length);
650: wc = (WildcardType) aa[0];
651: aa3 = wc.getLowerBounds();
652: if (aa3.length != 1)
653: fail("test_3, case 055 FAILED: " + aa3.length);
654: if (!((Class) aa3[0]).equals(Class.class))
655: fail("test_3, case 056 FAILED: " + ((Class) aa3[0]));
656: aa3 = wc.getUpperBounds();
657: if (aa3.length != 1)
658: fail("test_3, case 057 FAILED: " + aa3.length);
659: if (!((Class) aa3[0]).equals(Object.class))
660: fail("test_3, case 058 FAILED: " + ((Class) aa3[0]));
661: ////////////////////////////////////////////////////////////////////////////////////////////////////
662: try {
663: ft = java.lang.ClassGenericsTest3.class.getField("f111")
664: .getGenericType();
665: } catch (NoSuchFieldException e) {
666: fail("test_3, case 059 FAILED: ");
667: }
668: tv = (TypeVariable) ft;
669: if (!tv.getName().equals("$X$"))
670: fail("test_3, case 060 FAILED: " + tv.getName());
671: if (!((Class) tv.getGenericDeclaration()).getName().equals(
672: "java.lang.ClassGenericsTest3"))
673: fail("test_3, case 061 FAILED: "
674: + ((Class) tv.getGenericDeclaration()).getName());
675: ab = tv.getBounds();
676: if (!((Class) ab[0]).getName().equals("java.lang.Object"))
677: fail("test_3, case 062 FAILED: "
678: + ((Class) ab[0]).getName());
679: }
680:
681: /**
682: * use "$" symbol in identifiers for generalized method
683: */
684: static class $Mc3$09 extends Throwable implements
685: java.io.Serializable, Cloneable {
686: private static final long serialVersionUID = 0L;
687: };
688:
689: public <U$uUuU_ extends Throwable, TM1, TM2 extends Thread & java.io.Serializable & Cloneable> void foo1For_5(
690: U$uUuU_ a1) throws U$uUuU_, java.io.IOException {
691: }
692:
693: public void test_5() {
694: Type rt;
695: TypeVariable tv;
696: Type ap[];
697: Type ab[];
698: Type aet[];
699: Type atp[];
700: Method m = null;
701: try {
702: java.lang.reflect.Method am[] = ClassGenericsTest3.class
703: .getDeclaredMethods();
704: for (int i = 0; i < am.length; i++) {
705: if (am[i].getName().equals("foo1For_5")) {
706: m = am[i];
707: }
708: }
709: } catch (Exception e) {
710: fail("test_5, case 001 FAILED: " + e.toString());
711: }
712: rt = m.getGenericReturnType();
713: if (!((Class) rt).getName().equals("void"))
714: fail("test_5, case 003 FAILED: " + ((Class) rt).getName());
715: ///////
716: atp = m.getTypeParameters();
717: if (atp.length != 3)
718: fail("test_5, case 004 FAILED: " + atp.length);
719: tv = (TypeVariable) atp[0];
720: if (!tv.getName().equals("U$uUuU_"))
721: fail("test_5, case 005 FAILED: " + tv.getName());
722: if (!((Method) tv.getGenericDeclaration()).getName().equals(
723: "foo1For_5"))
724: fail("test_5, case 006 FAILED: "
725: + ((Method) tv.getGenericDeclaration()).getName());
726: ab = tv.getBounds();
727: if (ab.length != 1)
728: fail("test_5, case 007 FAILED: " + ab.length);
729: if (!((Class) ab[0]).getName().equals("java.lang.Throwable"))
730: fail("test_5, case 008 FAILED: "
731: + ((Class) ab[0]).getName());
732: tv = (TypeVariable) atp[1];
733: if (!tv.getName().equals("TM1"))
734: fail("test_5, case 009 FAILED: " + tv.getName());
735: if (!((Method) tv.getGenericDeclaration()).getName().equals(
736: "foo1For_5"))
737: fail("test_5, case 010 FAILED: "
738: + ((Method) tv.getGenericDeclaration()).getName());
739: ab = tv.getBounds();
740: if (ab.length != 1)
741: fail("test_5, case 011 FAILED: " + ab.length);
742: if (!((Class) ab[0]).getName().equals("java.lang.Object"))
743: fail("test_5, case 012 FAILED: "
744: + ((Class) ab[0]).getName());
745: tv = (TypeVariable) atp[2];
746: if (!tv.getName().equals("TM2"))
747: fail("test_5, case 013 FAILED: " + tv.getName());
748: if (!((Method) tv.getGenericDeclaration()).getName().equals(
749: "foo1For_5"))
750: fail("test_5, case 014 FAILED: "
751: + ((Method) tv.getGenericDeclaration()).getName());
752: ab = tv.getBounds();
753: if (ab.length != 3)
754: fail("test_5, case 015 FAILED: " + ab.length);
755: if (!((Class) ab[0]).getName().equals("java.lang.Thread"))
756: fail("test_5, case 016 FAILED: "
757: + ((Class) ab[0]).getName());
758: if (!((Class) ab[1]).getName().equals("java.io.Serializable"))
759: fail("test_5, case 017 FAILED: "
760: + ((Class) ab[1]).getName());
761: if (!((Class) ab[2]).getName().equals("java.lang.Cloneable"))
762: fail("test_5, case 018 FAILED: "
763: + ((Class) ab[2]).getName());
764: ///////
765: ap = m.getGenericParameterTypes();
766: if (ap.length != 1)
767: fail("test_5, case 019 FAILED: " + ap.length);
768: tv = (TypeVariable) ap[0];
769: if (!tv.getName().equals("U$uUuU_"))
770: fail("test_5, case 020 FAILED: " + tv.getName());
771: ///////
772: aet = m.getGenericExceptionTypes();
773: if (aet.length != 2)
774: fail("test_5, case 021 FAILED: " + ap.length);
775: tv = (TypeVariable) aet[0];
776: if (!tv.getName().equals("U$uUuU_"))
777: fail("test_5, case 022 FAILED: " + tv.getName());
778: if (!((Class) aet[1]).getName().equals("java.io.IOException"))
779: fail("test_5, case 023 FAILED: "
780: + ((Class) aet[1]).getName());
781: }
782:
783: /**
784: * use "$" symbol in identifiers for generalized constructor
785: */
786: class $Mc3$06 {
787: public <U$uUuU_ extends Throwable, TM1, TM2 extends Thread & java.io.Serializable & Cloneable & $MI3$01> $Mc3$06(
788: U$uUuU_ a1) throws U$uUuU_, java.io.IOException {
789: }
790: }
791:
792: public void test_6() {
793: TypeVariable tv;
794: Type ap[];
795: Type ab[];
796: Type aet[];
797: Type atp[];
798: Constructor m = null;
799: try {
800: m = ClassGenericsTest3.$Mc3$06.class
801: .getConstructor(new Class[] {
802: ClassGenericsTest3.class, Throwable.class });
803: } catch (Exception e) {
804: fail("test_6, case 001 FAILED: " + e.toString());
805: }
806: atp = m.getTypeParameters();
807: if (atp.length != 3)
808: fail("test_6, case 004 FAILED: " + atp.length);
809: tv = (TypeVariable) atp[0];
810: if (!tv.getName().equals("U$uUuU_"))
811: fail("test_6, case 005 FAILED: " + tv.getName());
812: if (!((Constructor) tv.getGenericDeclaration()).getName()
813: .equals("java.lang.ClassGenericsTest3$$Mc3$06"))
814: fail("test_6, case 006 FAILED: "
815: + ((Constructor) tv.getGenericDeclaration())
816: .getName());
817: ab = tv.getBounds();
818: if (ab.length != 1)
819: fail("test_6, case 007 FAILED: " + ab.length);
820: if (!((Class) ab[0]).getName().equals("java.lang.Throwable"))
821: fail("test_6, case 008 FAILED: "
822: + ((Class) ab[0]).getName());
823: tv = (TypeVariable) atp[1];
824: if (!tv.getName().equals("TM1"))
825: fail("test_6, case 009 FAILED: " + tv.getName());
826: if (!((Constructor) tv.getGenericDeclaration()).getName()
827: .equals("java.lang.ClassGenericsTest3$$Mc3$06"))
828: fail("test_6, case 010 FAILED: "
829: + ((Constructor) tv.getGenericDeclaration())
830: .getName());
831: ab = tv.getBounds();
832: if (ab.length != 1)
833: fail("test_6, case 011 FAILED: " + ab.length);
834: if (!((Class) ab[0]).getName().equals("java.lang.Object"))
835: fail("test_6, case 012 FAILED: "
836: + ((Class) ab[0]).getName());
837: tv = (TypeVariable) atp[2];
838: if (!tv.getName().equals("TM2"))
839: fail("test_6, case 013 FAILED: " + tv.getName());
840: if (!((Constructor) tv.getGenericDeclaration()).getName()
841: .equals("java.lang.ClassGenericsTest3$$Mc3$06"))
842: fail("test_6, case 014 FAILED: "
843: + ((Constructor) tv.getGenericDeclaration())
844: .getName());
845: ab = tv.getBounds();
846: if (ab.length != 4)
847: fail("test_6, case 015 FAILED: " + ab.length);
848: if (!((Class) ab[0]).getName().equals("java.lang.Thread"))
849: fail("test_6, case 016 FAILED: "
850: + ((Class) ab[0]).getName());
851: if (!((Class) ab[1]).getName().equals("java.io.Serializable"))
852: fail("test_6, case 017 FAILED: "
853: + ((Class) ab[1]).getName());
854: if (!((Class) ab[2]).getName().equals("java.lang.Cloneable"))
855: fail("test_6, case 018 FAILED: "
856: + ((Class) ab[2]).getName());
857: if (!((Class) ab[3]).getName().equals(
858: "java.lang.ClassGenericsTest3$$MI3$01"))
859: fail("test_6, case 0181 FAILED: "
860: + ((Class) ab[2]).getName());
861: ///////
862: ap = m.getGenericParameterTypes();
863: if (ap.length != 1)
864: fail("test_6, case 019 FAILED: " + ap.length);
865: tv = (TypeVariable) ap[0];
866: if (!tv.getName().equals("U$uUuU_"))
867: fail("test_6, case 020 FAILED: " + tv.getName());
868: ///////
869: aet = m.getGenericExceptionTypes();
870: if (aet.length != 2)
871: fail("test_6, case 021 FAILED: " + ap.length);
872: tv = (TypeVariable) aet[0];
873: if (!tv.getName().equals("U$uUuU_"))
874: fail("test_6, case 022 FAILED: " + tv.getName());
875: if (!((Class) aet[1]).getName().equals("java.io.IOException"))
876: fail("test_6, case 023 FAILED: "
877: + ((Class) aet[1]).getName());
878: }
879: }
|