home *** CD-ROM | disk | FTP | other *** search
- package java.lang;
-
- import java.io.InputStream;
- import java.io.ObjectStreamClass;
- import java.io.ObjectStreamField;
- import java.io.Serializable;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Field;
- import java.lang.reflect.Method;
- import java.net.URL;
- import java.security.AccessController;
- import java.security.AllPermission;
- import java.security.CodeSource;
- import java.security.Permissions;
- import java.security.ProtectionDomain;
-
- public final class Class implements Serializable {
- private static RuntimePermission getPDperm;
- private static ProtectionDomain allPermDomain;
- private static final long serialVersionUID = 3206093459760846163L;
- private static final ObjectStreamField[] serialPersistentFields;
-
- private static native void registerNatives();
-
- private Class() {
- }
-
- public String toString() {
- return (this.isInterface() ? "interface " : (this.isPrimitive() ? "" : "class ")) + this.getName();
- }
-
- public static Class forName(String var0) throws ClassNotFoundException {
- return forName0(var0, true, ClassLoader.getCallerClassLoader());
- }
-
- public static Class forName(String var0, boolean var1, ClassLoader var2) throws ClassNotFoundException {
- if (var2 == null) {
- SecurityManager var3 = System.getSecurityManager();
- if (var3 != null) {
- ClassLoader var4 = ClassLoader.getCallerClassLoader();
- if (var4 != null) {
- var3.checkPermission(ClassLoader.getGetClassLoaderPerm());
- }
- }
- }
-
- return forName0(var0, var1, var2);
- }
-
- private static native Class forName0(String var0, boolean var1, ClassLoader var2) throws ClassNotFoundException;
-
- public Object newInstance() throws InstantiationException, IllegalAccessException {
- if (System.getSecurityManager() != null) {
- this.checkMemberAccess(0, ClassLoader.getCallerClassLoader());
- }
-
- return this.newInstance0();
- }
-
- private native Object newInstance0() throws InstantiationException, IllegalAccessException;
-
- public native boolean isInstance(Object var1);
-
- public native boolean isAssignableFrom(Class var1);
-
- public native boolean isInterface();
-
- public native boolean isArray();
-
- public native boolean isPrimitive();
-
- public native String getName();
-
- public ClassLoader getClassLoader() {
- ClassLoader var1 = this.getClassLoader0();
- if (var1 == null) {
- return null;
- } else {
- SecurityManager var2 = System.getSecurityManager();
- if (var2 != null) {
- ClassLoader var3 = ClassLoader.getCallerClassLoader();
- if (var3 != null && var3 != var1 && !var1.isAncestor(var3)) {
- var2.checkPermission(ClassLoader.getGetClassLoaderPerm());
- }
- }
-
- return var1;
- }
- }
-
- private native ClassLoader getClassLoader0();
-
- public native Class getSuperclass();
-
- public Package getPackage() {
- return Package.getPackage(this);
- }
-
- public native Class[] getInterfaces();
-
- public native Class getComponentType();
-
- public native int getModifiers();
-
- public native Object[] getSigners();
-
- native void setSigners(Object[] var1);
-
- public native Class getDeclaringClass();
-
- public Class[] getClasses() {
- this.checkMemberAccess(0, ClassLoader.getCallerClassLoader());
- Class[] var1 = (Class[])AccessController.doPrivileged(new 1(this));
- return var1;
- }
-
- public Field[] getFields() throws SecurityException {
- this.checkMemberAccess(0, ClassLoader.getCallerClassLoader());
- return this.getFields0(0);
- }
-
- public Method[] getMethods() throws SecurityException {
- this.checkMemberAccess(0, ClassLoader.getCallerClassLoader());
- return this.getMethods0(0);
- }
-
- public Constructor[] getConstructors() throws SecurityException {
- this.checkMemberAccess(0, ClassLoader.getCallerClassLoader());
- return this.getConstructors0(0);
- }
-
- public Field getField(String var1) throws NoSuchFieldException, SecurityException {
- this.checkMemberAccess(0, ClassLoader.getCallerClassLoader());
- return this.getField0(var1, 0);
- }
-
- public Method getMethod(String var1, Class[] var2) throws NoSuchMethodException, SecurityException {
- this.checkMemberAccess(0, ClassLoader.getCallerClassLoader());
- return this.getMethod0(var1, var2, 0);
- }
-
- public Constructor getConstructor(Class[] var1) throws NoSuchMethodException, SecurityException {
- this.checkMemberAccess(0, ClassLoader.getCallerClassLoader());
- return this.getConstructor0(var1, 0);
- }
-
- public Class[] getDeclaredClasses() throws SecurityException {
- this.checkMemberAccess(1, ClassLoader.getCallerClassLoader());
- return this.getDeclaredClasses0();
- }
-
- public Field[] getDeclaredFields() throws SecurityException {
- this.checkMemberAccess(1, ClassLoader.getCallerClassLoader());
- return this.getFields0(1);
- }
-
- public Method[] getDeclaredMethods() throws SecurityException {
- this.checkMemberAccess(1, ClassLoader.getCallerClassLoader());
- return this.getMethods0(1);
- }
-
- public Constructor[] getDeclaredConstructors() throws SecurityException {
- this.checkMemberAccess(1, ClassLoader.getCallerClassLoader());
- return this.getConstructors0(1);
- }
-
- public Field getDeclaredField(String var1) throws NoSuchFieldException, SecurityException {
- this.checkMemberAccess(1, ClassLoader.getCallerClassLoader());
- return this.getField0(var1, 1);
- }
-
- public Method getDeclaredMethod(String var1, Class[] var2) throws NoSuchMethodException, SecurityException {
- this.checkMemberAccess(1, ClassLoader.getCallerClassLoader());
- return this.getMethod0(var1, var2, 1);
- }
-
- public Constructor getDeclaredConstructor(Class[] var1) throws NoSuchMethodException, SecurityException {
- this.checkMemberAccess(1, ClassLoader.getCallerClassLoader());
- return this.getConstructor0(var1, 1);
- }
-
- public InputStream getResourceAsStream(String var1) {
- var1 = this.resolveName(var1);
- ClassLoader var2 = this.getClassLoader0();
- return var2 == null ? ClassLoader.getSystemResourceAsStream(var1) : var2.getResourceAsStream(var1);
- }
-
- public URL getResource(String var1) {
- var1 = this.resolveName(var1);
- ClassLoader var2 = this.getClassLoader0();
- return var2 == null ? ClassLoader.getSystemResource(var1) : var2.getResource(var1);
- }
-
- public ProtectionDomain getProtectionDomain() {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- if (getPDperm == null) {
- getPDperm = new RuntimePermission("getProtectionDomain");
- }
-
- var1.checkPermission(getPDperm);
- }
-
- ProtectionDomain var2 = this.getProtectionDomain0();
- if (var2 == null) {
- if (allPermDomain == null) {
- Permissions var3 = new Permissions();
- var3.add(new AllPermission());
- allPermDomain = new ProtectionDomain((CodeSource)null, var3);
- }
-
- var2 = allPermDomain;
- }
-
- return var2;
- }
-
- private native ProtectionDomain getProtectionDomain0();
-
- native void setProtectionDomain0(ProtectionDomain var1);
-
- static native Class getPrimitiveClass(String var0);
-
- private void checkMemberAccess(int var1, ClassLoader var2) {
- SecurityManager var3 = System.getSecurityManager();
- if (var3 != null) {
- var3.checkMemberAccess(this, var1);
- ClassLoader var4 = this.getClassLoader0();
- if (var2 != null && var2 != var4 && (var4 == null || !var4.isAncestor(var2))) {
- String var5 = this.getName();
- int var6 = var5.lastIndexOf(46);
- if (var6 != -1) {
- var3.checkPackageAccess(var5.substring(0, var6));
- }
- }
- }
-
- }
-
- private String resolveName(String var1) {
- if (var1 == null) {
- return var1;
- } else {
- if (!var1.startsWith("/")) {
- Class var2;
- for(var2 = this; var2.isArray(); var2 = var2.getComponentType()) {
- }
-
- String var3 = var2.getName();
- int var4 = var3.lastIndexOf(46);
- if (var4 != -1) {
- var1 = var3.substring(0, var4).replace('.', '/') + "/" + var1;
- }
- } else {
- var1 = var1.substring(1);
- }
-
- return var1;
- }
- }
-
- private native Field[] getFields0(int var1);
-
- private native Method[] getMethods0(int var1);
-
- private native Constructor[] getConstructors0(int var1);
-
- private native Field getField0(String var1, int var2);
-
- private native Method getMethod0(String var1, Class[] var2, int var3);
-
- private native Constructor getConstructor0(Class[] var1, int var2);
-
- private native Class[] getDeclaredClasses0();
-
- static {
- registerNatives();
- serialPersistentFields = ObjectStreamClass.NO_FIELDS;
- }
- }
-