CVSROOT: /cvsroot/classpath Module name: classpath Changes by: Tom Tromey <tromey> 06/06/16 20:34:00
Modified files: . : ChangeLog Added files: vm/reference/sun/reflect/misc: ReflectUtil.java Removed files: vm/reference/sun/misc: ReflectUtil.java Log message: * vm/reference/sun/reflect/misc/ReflectUtil.java: Moved... * vm/reference/sun/misc/ReflectUtil.java: ...from here. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.7854&r2=1.7855 http://cvs.savannah.gnu.org/viewcvs/classpath/vm/reference/sun/misc/ReflectUtil.java?cvsroot=classpath&r1=1.1&r2=0 http://cvs.savannah.gnu.org/viewcvs/classpath/vm/reference/sun/reflect/misc/ReflectUtil.java?cvsroot=classpath&rev=1.2 Patches: Index: ChangeLog =================================================================== RCS file: /cvsroot/classpath/classpath/ChangeLog,v retrieving revision 1.7854 retrieving revision 1.7855 diff -u -b -r1.7854 -r1.7855 --- ChangeLog 16 Jun 2006 19:40:00 -0000 1.7854 +++ ChangeLog 16 Jun 2006 20:33:59 -0000 1.7855 @@ -1,3 +1,8 @@ +2006-06-16 Tom Tromey <[EMAIL PROTECTED]> + + * vm/reference/sun/reflect/misc/ReflectUtil.java: Moved... + * vm/reference/sun/misc/ReflectUtil.java: ...from here. + 2006-06-16 Keith Seitz <[EMAIL PROTECTED]> * gnu/classpath/jdwp/event/EventManager.java (getDefault): Redo Index: vm/reference/sun/reflect/misc/ReflectUtil.java =================================================================== RCS file: vm/reference/sun/reflect/misc/ReflectUtil.java diff -N vm/reference/sun/reflect/misc/ReflectUtil.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ vm/reference/sun/reflect/misc/ReflectUtil.java 16 Jun 2006 20:34:00 -0000 1.2 @@ -0,0 +1,92 @@ +/* ReflectUtil.java - JSR 166 reflection hooks + Copyright (C) 2006 Free Software Foundation + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package sun.reflect.misc; + +import java.lang.reflect.Modifier; + +public class ReflectUtil +{ + // We use this inaccessible inner class as an argument type + // in verifyMemberAccess. All current users of this method + // in the JSR 166 RI pass 'null' for this argument, and + // consequently we don't know what it means. Using a funny + // type like this for the argument means that if the RI changes, + // we will see a compilation error. + private static class MustBeNull + { + } + + public static void checkPackageAccess(Class declaringClass) + { + // FIXME: not sure what to check here. + } + + /** + * Perform access checks on a member of a class. This API is + * derived from the public domain code in the JSR 166 reference + * implementation. + * @param caller the class requesting access to the member + * @param declarer the declaring class of the member + * @param ignored unknown parameter; always null + * @param modifiers the modifiers on the member + */ + public static void ensureMemberAccess(Class caller, + Class declarer, + MustBeNull ignored, + int modifiers) + { + // Same class, always ok. + if (caller == declarer) + return; + // Public access is ok. + if ((modifiers & Modifier.PUBLIC) != 0) + return; + // Protected access and request comes from + // a subclass of the declarer -- ok. + if ((modifiers & Modifier.PROTECTED) != 0 + && declarer.isAssignableFrom(caller)) + return; + // Package-private access, or protected access, + // and the packages are the same --ok. + if ((modifiers & Modifier.PRIVATE) == 0 + && caller.getPackage() == declarer.getPackage()) + return; + // Otherwise, no. + throw new IllegalAccessError(); + } +} Index: vm/reference/sun/misc/ReflectUtil.java =================================================================== RCS file: vm/reference/sun/misc/ReflectUtil.java diff -N vm/reference/sun/misc/ReflectUtil.java --- vm/reference/sun/misc/ReflectUtil.java 16 Jun 2006 18:28:45 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,93 +0,0 @@ -/* ReflectUtil.java - JSR 166 reflection hooks - Copyright (C) 2006 Free Software Foundation - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package sun.reflect.misc; - -import java.lang.reflect.Modifier; - -public class ReflectUtil -{ - // We use this inaccessible inner class as an argument type - // in verifyMemberAccess. All current users of this method - // in the JSR 166 RI pass 'null' for this argument, and - // consequently we don't know what it means. Using a funny - // type like this for the argument means that if the RI changes, - // we will see a compilation error. - private static class MustBeNull - { - } - - public static void checkPackageAccess(Class declaringClass) - { - // FIXME: not sure what to check here. - } - - /** - * Perform access checks on a member of a class. This API is - * derived from the public domain code in the JSR 166 reference - * implementation. - * @param caller the class requesting access to the member - * @param declarer the declaring class of the member - * @param ignored unknown parameter; always null - * @param modifiers the modifiers on the member - * @return true if access is granted, false otherwise - */ - public static void ensureMemberAccess(Class caller, - Class declarer, - MustBeNull ignored, - int modifiers) - { - // Same class, always ok. - if (caller == declarer) - return; - // Public access is ok. - if ((modifiers & Modifier.PUBLIC) != 0) - return; - // Protected access and request comes from - // a subclass of the declarer -- ok. - if ((modifiers & Modifier.PROTECTED) != 0 - && declarer.isAssignableFrom(caller)) - return; - // Package-private access, or protected access, - // and the packages are the same --ok. - if ((modifiers & Modifier.PRIVATE) == 0 - && caller.getPackage() == declarer.getPackage()) - return; - // Otherwise, no. - throw new IllegalAccessError(); - } -}