src/share/classes/java/lang/invoke/MethodHandleNatives.java

Print this page




 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 }