431 case "getClassLoader":
432 case "getClasses":
433 case "getFields":
434 case "getMethods":
435 case "getConstructors":
436 case "getDeclaredClasses":
437 case "getDeclaredFields":
438 case "getDeclaredMethods":
439 case "getDeclaredConstructors":
440 case "getField":
441 case "getMethod":
442 case "getConstructor":
443 case "getDeclaredField":
444 case "getDeclaredMethod":
445 case "getDeclaredConstructor":
446 return defc == java.lang.Class.class;
447 case "getConnection":
448 case "getDriver":
449 case "getDrivers":
450 case "deregisterDriver":
451 return defc == java.sql.DriverManager.class;
452 case "newUpdater":
453 if (defc == java.util.concurrent.atomic.AtomicIntegerFieldUpdater.class) return true;
454 if (defc == java.util.concurrent.atomic.AtomicLongFieldUpdater.class) return true;
455 if (defc == java.util.concurrent.atomic.AtomicReferenceFieldUpdater.class) return true;
456 break;
457 case "getContextClassLoader":
458 return defc == java.lang.Thread.class;
459 case "getPackage":
460 case "getPackages":
461 return defc == java.lang.Package.class;
462 case "getParent":
463 case "getSystemClassLoader":
464 return defc == java.lang.ClassLoader.class;
465 case "load":
466 case "loadLibrary":
467 if (defc == java.lang.Runtime.class) return true;
468 if (defc == java.lang.System.class) return true;
469 break;
470 case "getCallerClass":
471 if (defc == sun.reflect.Reflection.class) return true;
472 if (defc == java.lang.System.class) return true;
473 break;
474 case "getCallerClassLoader":
475 return defc == java.lang.ClassLoader.class;
476 case "getProxyClass":
477 case "newProxyInstance":
478 return defc == java.lang.reflect.Proxy.class;
479 case "getBundle":
480 case "clearCache":
481 return defc == java.util.ResourceBundle.class;
482 }
483 return false;
484 }
485 }
|
431 case "getClassLoader":
432 case "getClasses":
433 case "getFields":
434 case "getMethods":
435 case "getConstructors":
436 case "getDeclaredClasses":
437 case "getDeclaredFields":
438 case "getDeclaredMethods":
439 case "getDeclaredConstructors":
440 case "getField":
441 case "getMethod":
442 case "getConstructor":
443 case "getDeclaredField":
444 case "getDeclaredMethod":
445 case "getDeclaredConstructor":
446 return defc == java.lang.Class.class;
447 case "getConnection":
448 case "getDriver":
449 case "getDrivers":
450 case "deregisterDriver":
451 return defc == getClass("java.sql.DriverManager");
452 case "newUpdater":
453 if (defc == java.util.concurrent.atomic.AtomicIntegerFieldUpdater.class) return true;
454 if (defc == java.util.concurrent.atomic.AtomicLongFieldUpdater.class) return true;
455 if (defc == java.util.concurrent.atomic.AtomicReferenceFieldUpdater.class) return true;
456 break;
457 case "getContextClassLoader":
458 return defc == java.lang.Thread.class;
459 case "getPackage":
460 case "getPackages":
461 return defc == java.lang.Package.class;
462 case "getParent":
463 case "getSystemClassLoader":
464 return defc == java.lang.ClassLoader.class;
465 case "load":
466 case "loadLibrary":
467 if (defc == java.lang.Runtime.class) return true;
468 if (defc == java.lang.System.class) return true;
469 break;
470 case "getCallerClass":
471 if (defc == sun.reflect.Reflection.class) return true;
472 if (defc == java.lang.System.class) return true;
473 break;
474 case "getCallerClassLoader":
475 return defc == java.lang.ClassLoader.class;
476 case "getProxyClass":
477 case "newProxyInstance":
478 return defc == java.lang.reflect.Proxy.class;
479 case "getBundle":
480 case "clearCache":
481 return defc == java.util.ResourceBundle.class;
482 }
483 return false;
484 }
485
486 // avoid static dependency to a class in other modules
487 private static Class<?> getClass(String cn) {
488 try {
489 return Class.forName(cn, false,
490 MethodHandleNatives.class.getClassLoader());
491 } catch (ClassNotFoundException e) {
492 throw new InternalError(e);
493 }
494 }
495 }
|