]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libjava/java/lang/SecurityManager.java
Imported gcc-4.4.3
[msp430-gcc.git] / libjava / java / lang / SecurityManager.java
diff --git a/libjava/java/lang/SecurityManager.java b/libjava/java/lang/SecurityManager.java
deleted file mode 100644 (file)
index 3ae049c..0000000
+++ /dev/null
@@ -1,776 +0,0 @@
-/* java.lang.SecurityManager
-   Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
-
-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., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 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 java.lang;
-
-import java.net.*;
-import java.util.*;
-import java.io.*;
-
-/**
- ** SecurityManager is a class you can extend to create
- ** your own Java security policy.  By default, there is
- ** no SecurityManager installed in 1.1, which means that
- ** all things are permitted to all people.<P>
- **
- ** The default methods in this class deny all
- ** things to all people.
- **
- ** @author  John Keiser
- ** @version 1.1.0, 31 May 1998
- ** @since JDK1.0
- **/
-public class SecurityManager {
-       /** Tells whether or not the SecurityManager is currently
-        ** performing a security check.
-        **/
-       protected boolean inCheck;
-
-       /** Tells whether or not the SecurityManager is currently
-        ** performing a security check.
-        **
-        ** @return whether or not the SecurityManager is
-        **         currently performing a security check.
-        **/
-       public boolean getInCheck() {
-               return inCheck;
-       }
-
-       /** Get a list of all the classes currently executing
-        ** methods on the Java stack.  getClassContext()[0] is
-        ** the currently executing method
-        ** <STRONG>Spec Note:</STRONG> does not say whether
-        ** the stack will include the getClassContext() call or
-        ** the one just before it.
-        **
-        ** @return an array containing all the methods on classes
-        **         on the Java execution stack.
-        **/
-       protected Class[] getClassContext() {
-               return VMSecurityManager.getClassContext();
-       }
-
-       /** Find the ClassLoader for the most recent class on the
-        ** stack that was loaded by an explicit ClassLoader.  If
-        ** everything on the stack was loaded by the system
-        ** classloader, null is returned.
-        **
-        ** @return the most recent ClassLoader on the execution
-        **         stack.
-        **/
-       protected ClassLoader currentClassLoader() {
-               return VMSecurityManager.currentClassLoader();
-       }
-
-       /** Find the most recent class on the stack that was
-        ** loaded by an explicit ClassLoader.  If everything on
-        ** the stack was loaded by the system classloader, null
-        ** is returned.
-        **
-        ** @return the most recent loaded Class on the execution
-        **         stack.
-        **/
-       protected Class currentLoadedClass() {
-               Class[] c = getClassContext();
-               for(int i=0;i<c.length;i++) {
-                       if(c[i].getClassLoader() != null) {
-                               return c[i];
-                       }
-               }
-               return null;
-       }
-
-       /** Get the depth on the execution stack of the most
-        ** recent class that was loaded by an explicit
-        ** ClassLoader.  This can be used as an index into
-        ** getClassContext().
-        **
-        ** @return the index of the most recent loaded Class on
-        **         the execution stack.
-        **/
-       protected int classLoaderDepth() {
-               Class[] c = getClassContext();
-               for(int i=0;i<c.length;i++) {
-                       if(c[i].getClassLoader() != null) {
-                               return i;
-                       }
-               }
-               return -1;
-       }
-
-       /** Tell whether there is a class loaded with an explicit
-        ** ClassLoader on the stack.
-        **
-        ** @return whether there is a class loaded with an
-        **         explicit ClassLoader on the stack.
-        **/
-       protected boolean inClassLoader() {
-               return classLoaderDepth() != -1;
-       }
-
-
-       /** Get the depth of a particular class on the execution
-        ** stack.
-        **
-        ** @param className the fully-qualified name of the class
-        **        to search for on the stack.
-        ** @return the index of the class on the stack, or -1 if
-        **         the class is not on the stack.
-        **/
-       protected int classDepth(String className) {
-               Class[] c = getClassContext();
-               for(int i=0;i<c.length;i++) {
-                       if(className.equals(c[i].getName())) {
-                               return i;
-                       }
-               }
-               return -1;
-       }
-
-       /** Tell whether the specified class is on the execution
-        ** stack.
-        **
-        ** @param className the fully-qualified name of the class
-        **        to search for on the stack.
-        ** @return whether the specified class is on the
-        **         execution stack.
-        **/
-       protected boolean inClass(String className) {
-               return classDepth(className) != -1;
-       }
-
-       /** Get an implementation-dependent Object that contains
-        ** enough information about the current environment to be
-        ** able to perform standard security checks later.  This
-        ** is used by trusted methods that need to verify that
-        ** their callers have sufficient access to perform
-        ** certain operations.<P>
-        **
-        ** Currently the only methods that use this are checkRead()
-        ** and checkConnect().
-        **
-        ** @see checkConnect(java.lang.String,int,java.lang.Object)
-        ** @see checkRead(java.lang.String,java.lang.Object)
-        **/
-       public Object getSecurityContext() {
-               return new SecurityContext(getClassContext());
-       }
-
-       /** Check if the current thread is allowed to create a
-        ** ClassLoader.<P>
-        **
-        ** This method is called from ClassLoader.ClassLoader(),
-        ** in other words, whenever a ClassLoader is created.<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.ClassLoader#ClassLoader()
-        **/
-       public void checkCreateClassLoader() {
-               throw new SecurityException("Cannot create new ClassLoaders.");
-       }
-
-       /** Check if the current thread is allowed to modify this
-        ** other Thread.<P>
-        **
-        ** Called by Thread.stop(), suspend(), resume(), and
-        ** interrupt(), destroy(), setPriority(), setName() and
-        ** setDaemon().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param g the Thread to check against
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.Thread#stop()
-        ** @see java.lang.Thread#suspend()
-        ** @see java.lang.Thread#resume()
-        ** @see java.lang.Thread#interrupt()
-        ** @see java.lang.Thread#destroy()
-        ** @see java.lang.Thread#setPriority(int)
-        ** @see java.lang.Thread#setName(java.lang.String)
-        ** @see java.lang.Thread#setDaemon(boolean)
-        **/
-       public void checkAccess(Thread t) {
-               throw new SecurityException("Cannot modify Threads.");
-       }
-
-       /** Check if the current thread is allowed to modify this
-        ** ThreadGroup.<P>
-        **
-        ** Called by Thread.Thread() (to add a thread to the
-        ** ThreadGroup), ThreadGroup.ThreadGroup() (to add this
-        ** ThreadGroup to a parent), ThreadGroup.stop(),
-        ** suspend(), resume(), interrupt(), destroy(),
-        ** setDaemon(), and setMaxPriority().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param g the ThreadGroup to check against
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.Thread#Thread()
-        ** @see java.lang.ThreadGroup#ThreadGroup()
-        ** @see java.lang.ThreadGroup#stop()
-        ** @see java.lang.ThreadGroup#suspend()
-        ** @see java.lang.ThreadGroup#resume()
-        ** @see java.lang.ThreadGroup#interrupt()
-        ** @see java.lang.ThreadGroup#setDaemon(boolean)
-        ** @see java.lang.ThreadGroup#setMaxPriority(int)
-        **/
-       public void checkAccess(ThreadGroup g) {
-               throw new SecurityException("Cannot modify ThreadGroups.");
-       }
-
-       /** Check if the current thread is allowed to exit the
-        ** JVM with the given status.<P>
-        **
-        ** This method is called from Runtime.exit().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param status the status to exit with
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.Runtime#exit()
-        ** @see java.lang.Runtime#exit(int)
-        **/
-       public void checkExit(int status) {
-               throw new SecurityException("Cannot exit JVM.");
-       }
-
-       /** Check if the current thread is allowed to execute the
-        ** given program.<P>
-        **
-        ** This method is called from Runtime.exec().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param program the name of the program to exec
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.Runtime#exec(java.lang.String[],java.lang.String[])
-        **/
-       public void checkExec(String program) {
-               throw new SecurityException("Cannot execute programs.");
-       }
-
-       /** Check if the current thread is allowed to link in the
-        ** given native library.<P>
-        **
-        ** This method is called from Runtime.load() (and hence,
-        ** by loadLibrary() as well).<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param filename the full name of the library to load
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.Runtime#load(java.lang.String)
-        **/
-       public void checkLink(String filename) {
-               throw new SecurityException("Cannot link native libraries.");
-       }
-
-       /** Check if the current thread is allowed to read the
-        ** given file using the FileDescriptor.<P>
-        **
-        ** This method is called from
-        ** FileInputStream.FileInputStream().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param desc the FileDescriptor representing the file
-        **        to access
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.io.FileInputStream#FileInputStream(java.io.FileDescriptor)
-        **/
-       public void checkRead(FileDescriptor desc) {
-               throw new SecurityException("Cannot read files via file descriptors.");
-       }
-
-       /** Check if the current thread is allowed to read the
-        ** given file.<P>
-        **
-        ** This method is called from
-        ** FileInputStream.FileInputStream(),
-        ** RandomAccessFile.RandomAccessFile(), File.exists(),
-        ** canRead(), isFile(), isDirectory(), lastModified(),
-        ** length() and list().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param filename the full name of the file to access
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.io.File
-        ** @see java.io.FileInputStream#FileInputStream(java.lang.String)
-        ** @see java.io.RandomAccessFile#RandomAccessFile(java.lang.String)
-        **/
-       public void checkRead(String filename) {
-               throw new SecurityException("Cannot read files via file names.");
-       }
-
-       /** Check if the current thread is allowed to read the
-        ** given file. using the given SecurityContext.<P>
-        **
-        ** I know of no core class that calls this method.<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param filename the full name of the file to access
-        ** @param securityContext the Security Context to
-        **        determine access for.
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        **/
-       public void checkRead(String filename, Object securityContext) {
-               throw new SecurityException("Cannot read files via file names.");
-       }
-
-       /** Check if the current thread is allowed to write to the
-        ** given file using the FileDescriptor.<P>
-        **
-        ** This method is called from
-        ** FileOutputStream.FileOutputStream().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param desc the FileDescriptor representing the file
-        **        to access
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.io.FileOutputStream#FileOutputStream(java.io.FileDescriptor)
-        **/
-       public void checkWrite(FileDescriptor desc) {
-               throw new SecurityException("Cannot write files via file descriptors.");
-       }
-
-       /** Check if the current thread is allowed to write to the
-        ** given file.<P>
-        **
-        ** This method is called from
-        ** FileOutputStream.FileOutputStream(),
-        ** RandomAccessFile.RandomAccessFile(),
-        ** File.canWrite(), mkdir(), and renameTo().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param filename the full name of the file to access
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.io.File#canWrite()
-        ** @see java.io.File#mkdir()
-        ** @see java.io.File#renameTo()
-        ** @see java.io.FileOutputStream#FileOutputStream(java.lang.String)
-        ** @see java.io.RandomAccessFile#RandomAccessFile(java.lang.String)
-        **/
-       public void checkWrite(String filename) {
-               throw new SecurityException("Cannot write files via file names.");
-       }
-
-       /** Check if the current thread is allowed to delete the
-        ** given file.<P>
-        **
-        ** This method is called from File.delete().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param filename the full name of the file to delete
-        ** @exception SecurityException if th operation is not
-        **            permitted.
-        ** @see java.io.File#delete()
-        **/
-       public void checkDelete(String filename) {
-               throw new SecurityException("Cannot delete files.");
-       }
-
-       /** Check if the current thread is allowed to connect to a
-        ** given host on a given port.<P>
-        **
-        ** This method is called from Socket.Socket().
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param host the host to connect to
-        ** @param port the port to connect on
-        ** @exception SecurityException if the operation is not
-        **            permitted
-        ** @see java.net.Socket#Socket()
-        **/
-       public void checkConnect(String host, int port) {
-               throw new SecurityException("Cannot make network connections.");
-       }
-
-       /** Check if the current thread is allowed to connect to a
-        ** given host on a given port using a specific security
-        ** context to determine access.<P>
-        **
-        ** This method is not called in the 1.1 core classes.<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param host the host to connect to
-        ** @param port the port to connect on
-        ** @param securityContext the security context to
-        **        determine access with
-        ** @exception SecurityException if the operation is not
-        **            permitted
-        **/
-       public void checkConnect(String host, int port, Object securityContext) {
-               throw new SecurityException("Cannot make network connections.");
-       }
-
-       /** Check if the current thread is allowed to listen to a
-        ** specific port for data.<P>
-        **
-        ** This method is called by ServerSocket.ServerSocket().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param port the port to listen on
-        ** @exception SecurityException if the operation is not
-        **            permitted
-        ** @see java.net.ServerSocket#ServerSocket(int)
-        **/
-       public void checkListen(int port) {
-               throw new SecurityException("Cannot listen for connections.");
-       }
-
-       /** Check if the current thread is allowed to accept a
-        ** connection from a particular host on a particular
-        ** port.<P>
-        **
-        ** This method is called by ServerSocket.implAccept().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param host the host which wishes to connect
-        ** @param port the port the connection will be on
-        ** @exception SecurityException if the operation is not
-        **            permitted
-        ** @see java.net.ServerSocket#accept()
-        **/
-       public void checkAccept(String host, int port) {
-               throw new SecurityException("Cannot accept connections.");
-       }
-
-       /** Check if the current thread is allowed to read and
-        ** write multicast to a particular address.<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @XXX where is it called?
-        **
-        ** @param addr the address to multicast to.
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        **/
-       public void checkMulticast(InetAddress addr) {
-               throw new SecurityException("Cannot read or write multicast.");
-       }
-
-       /** Check if the current thread is allowed to read and
-        ** write multicast to a particular address with a
-        ** particular ttl value.<P>
-        **
-        ** SecurityManager's implementation always denies access.<P>
-        **
-        ** @XXX where is it called?
-        **
-        ** @XXX what the hell is ttl?  Expand abbreviation.
-        **
-        ** @param addr the address to multicast to.
-        ** @param ttl the ttl value to use
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        **/
-       public void checkMulticast(InetAddress addr, byte ttl) {
-               throw new SecurityException("Cannot read or write multicast.");
-       }
-
-        /**
-         ** Check if the current thread is allowed to perform an
-         ** operation that requires the specified <code>Permission</code>.
-         **
-         ** @param perm The <code>Permission</code> required.
-         ** @exception SecurityException If the operation is not allowed.
-         **/
-         public void checkPermission(java.security.Permission perm) {
-               throw new SecurityException("Operation not allowed");
-       }
-
-        /**
-         ** Check if the current thread is allowed to perform an
-         ** operation that requires the specified <code>Permission</code>.
-         **
-         ** @param perm The <code>Permission</code> required.
-        ** @param context A security context
-         ** @exception SecurityException If the operation is not allowed.
-        ** @since 1.2
-         **/
-         public void checkPermission(java.security.Permission perm,
-                                    Object context) {
-               throw new SecurityException("Operation not allowed");
-       }
-
-       /** Check if the current thread is allowed to read or
-        ** write all the system properties at once.<P>
-        **
-        ** This method is called by System.getProperties()
-        ** and setProperties().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.System#getProperties()
-        ** @see java.lang.System#setProperties(java.util.Properties)
-        **/
-       public void checkPropertiesAccess() {
-               throw new SecurityException("Cannot access all system properties at once.");
-       }
-
-       /** Check if the current thread is allowed to read or
-        ** write a particular system property.<P>
-        **
-        ** This method is called by System.getProperty() and
-        ** setProperty().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @exception SecurityException is the operation is not
-        **            permitted.
-        ** @see java.lang.System#getProperty(java.lang.String)
-        ** @see java.lang.System#setProperty(java.lang.String,java.lang.String)
-        **/
-       public void checkPropertyAccess(String name) {
-               throw new SecurityException("Cannot access individual system properties.");
-       }
-
-       /** Check if the current thread is allowed to create a
-        ** top-level window.  If it is not, the operation should
-        ** still go through, but some sort of nonremovable
-        ** warning should be placed on the window to show that it
-        ** is untrusted.<P>
-        **
-        ** This method is called by Window.Window().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param window the window to create
-        ** @see java.awt.Window#Window(java.awt.Frame)
-        **/
-       public boolean checkTopLevelWindow(Object window) {
-         return false;
-       }
-
-       /** Check if the current thread is allowed to create a
-        ** print job.<P>
-        **
-        ** This method is called by Toolkit.getPrintJob().  (I
-        ** assume so, at least, it just don't say nothing about
-        ** it in the spec.)<P>
-        ** 
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.awt.Toolkit.getPrintJob(java.awt.Frame,java.lang.String,java.util.Properties)
-        **/
-       public void checkPrintJobAccess() {
-               throw new SecurityException("Cannot create print jobs.");
-       }
-
-       /** Check if the current thread is allowed to use the
-        ** system clipboard.<P>
-        **
-        ** This method is called by Toolkit.getSystemClipboard().
-        ** (I assume.)<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.awt.Toolkit#getSystemClipboard()
-        **/
-       public void checkSystemClipboardAccess() {
-               throw new SecurityException("Cannot access the system clipboard.");
-       }
-
-       /** Check if the current thread is allowed to use the AWT
-        ** event queue.<P>
-        **
-        ** This method is called by Toolkit.getSystemEventQueue().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.awt.Toolkit#getSystemEventQueue()
-        **/
-       public void checkAwtEventQueueAccess() {
-               throw new SecurityException("Cannot access the AWT event queue.");
-       }
-
-       /** Check if the current thread is allowed to access the
-        ** specified package at all.<P>
-        **
-        ** This method is called by ClassLoader.loadClass() in
-        ** user-created ClassLoaders.<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param packageName the package name to check access to
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.ClassLoader#loadClass(java.lang.String,boolean)
-        **/
-       public void checkPackageAccess(String packageName) {
-               throw new SecurityException("Cannot access packages via the ClassLoader.");
-       }
-
-       /** Check if the current thread is allowed to define
-        ** classes the specified package.  If the class already
-        ** created, though, ClassLoader.loadClass() can still
-        ** return the Class if checkPackageAccess() checks out.<P>
-        **
-        ** This method is called by ClassLoader.loadClass() in
-        ** user-created ClassLoaders.<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param packageName the package name to check access to
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.ClassLoader#loadClass(java.lang.String,boolean)
-        **/
-       public void checkPackageDefinition(String packageName) {
-               throw new SecurityException("Cannot load classes into any packages via the ClassLoader.");
-       }
-
-       /** Check if the current thread is allowed to set the
-        ** current socket factory.<P>
-        **
-        ** This method is called by Socket.setSocketImplFactory(),
-        ** ServerSocket.setSocketFactory(), and
-        ** URL.setURLStreamHandlerFactory().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.net.Socket#setSocketImplFactory(java.net.SocketImplFactory)
-        ** @see java.net.ServerSocket#setSocketFactory(java.net.SocketImplFactory)
-        ** @see java.net.URL#setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory)
-        **/
-       public void checkSetFactory() {
-               throw new SecurityException("Cannot set the socket factory.");
-       }
-
-       /** Check if the current thread is allowed to get certain
-        ** types of Methods, Fields and Constructors from a Class
-        ** object.<P>
-        **
-        ** This method is called by Class.getMethod[s](),
-        ** Class.getField[s](), Class.getConstructor[s],
-        ** Class.getDeclaredMethod[s](),
-        ** Class.getDeclaredField[s](), and
-        ** Class.getDeclaredConstructor[s]().<P>
-        **
-        ** SecurityManager's implementation always denies access.
-        **
-        ** @param c the Class to check
-        ** @param memberType the type of members to check
-        **        against, either Member.DECLARED or
-        **        Member.PUBLIC.
-        ** @exception SecurityException if the operation is not
-        **            permitted.
-        ** @see java.lang.Class
-        ** @see java.lang.reflect.Member#DECLARED
-        ** @see java.lang.reflect.Member#PUBLIC
-        **/
-       public void checkMemberAccess(Class c, int memberType) {
-               throw new SecurityException("Cannot access members of classes.");
-       }
-
-       /** Test whether a particular security action may be
-        ** taken.
-        ** @param action the desired action to take
-        ** @exception SecurityException if the action is denied.
-        ** @XXX I have no idea what actions must be tested
-        **      or where.
-        **/
-       public void checkSecurityAccess(String action) {
-               checkPermission (new java.security.SecurityPermission (action));
-       }
-
-       /** Get the ThreadGroup that a new Thread should belong
-        ** to by default.<P>
-        **
-        ** Called by Thread.Thread().<P>
-        **
-        ** SecurityManager's implementation just uses the
-        ** ThreadGroup of the current Thread.<P>
-        **
-        ** <STRONG>Spec Note:</STRONG> it is not clear whether
-        ** the new Thread is guaranteed to pass the
-        ** checkAccessThreadGroup() test when using this
-        ** ThreadGroup.  I presume so.
-        **
-        ** @return the ThreadGroup to put the new Thread into.
-        **/
-       public ThreadGroup getThreadGroup() {
-               return Thread.currentThread().getThreadGroup();
-       }
-
-       public SecurityManager () {
-               if (System.getSecurityManager () != null)
-                       throw new SecurityException ();
-       }
-}
-
-class SecurityContext {
-       Class[] classes;
-       SecurityContext(Class[] classes) {
-               this.classes = classes;
-       }
-}