| /* RuntimePermission.java |
| Copyright (C) 1998, 2000 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. |
| |
| As a special exception, if you link this library with other files to |
| produce an executable, this library does not by itself cause the |
| resulting executable to be covered by the GNU General Public License. |
| This exception does not however invalidate any other reasons why the |
| executable file might be covered by the GNU General Public License. */ |
| |
| |
| package java.lang; |
| |
| import java.security.*; |
| |
| /** |
| * A <code>RuntimePermission</code> contains a permission name, but no |
| * actions list. This means you either have the permission or you don't. |
| * |
| * Permission names have the follow the hierarchial property naming |
| * convention. In addition, an asterisk may appear at the end of a |
| * name if following a period or by itself. |
| * |
| * <table border=1> |
| * <tr><th>Valid names</th><th>Invalid names</th></tr> |
| * <tr><td>"accessClassInPackage.*","*"</td> |
| * <td>"**", "*x", "*.a"</td></tr> |
| * </table> |
| * <br> |
| * |
| * The following table provides a list of all the possible RuntimePermission |
| * permission names with a description of what that permission allows. |
| * <br> |
| * <table border=1> |
| * <tr><th>Permission Name</th><th>Permission Allows</th></tr> |
| * <tr> |
| * <td><code>createClassLoader</code></td> |
| * <td>creation of a class loader</td></tr> |
| * <tr> |
| * <td><code>getClassLoader</code></td> |
| * <td>retrieval of the class loader for the calling class</td></tr> |
| * <tr> |
| * <td><code>setContextClassLoader</code></td> |
| * <td>allows the setting of the context class loader used by a |
| * thread including system threads</td></tr> |
| * <tr> |
| * <td><code>setSecurityManager</code></td> |
| * <td>allows the application to replace the security manager with |
| * another, possibly less restrictive one.</td></tr> |
| * <tr> |
| * <td><code>createSecurityManager</code></td> |
| * <td>allows the application to create a new security manager</td></tr> |
| * <tr> |
| * <td><code>exitVM</code></td> |
| * <td>allows the application to halt the virtual machine</td></tr> |
| * <tr> |
| * <td><code>setFactory</code></td> |
| * <td>allows the application to set the socket factory for socket, |
| * server socket, stream handler, or RMI socket factory.</td></tr> |
| * <tr> |
| * <td><code>setIO</code></td> |
| * <td>allows the application to set System.out, System.in, and |
| * System.err</td></tr> |
| * <tr> |
| * <td><code>modifyThread</code></td> |
| * <td>allows the application to modify any thread in the virtual machine |
| * using any of the methods <code>stop</code>, <code>resume</code>, |
| * <code>suspend</code>, <code>setPriority</code>, and |
| * <code>setName</code> of classs <code>Thread</code></td></tr> |
| * <tr> |
| * <td><code>stopThread</code></td> |
| * <td>allows the application to <code>stop</code> any thread it has |
| * access to in the system</td></tr> |
| * <tr> |
| * <td><code>modifyThreadGroup</td> |
| * <td>allows the application to modify thread groups using any of the |
| * methods <code>destroy</code>, <code>resume</code>, |
| * <code>setDaemon</code>, <code>setMaxPriority</code>, |
| * <code>stop</code>, and <code>suspend</code> of the class |
| * <code>ThreadGroup</code></td></tr> |
| * <tr> |
| * <td><code>getProtectionDomain</code></td> |
| * <td></td></tr> |
| * <tr> |
| * <td><code>readFileDescriptor</code></td> |
| * <td></td></tr> |
| * <tr> |
| * <td><code>writeFileDescriptor</code</td> |
| * <td></td></tr> |
| * <tr> |
| * <td><code>loadLibrary.{library name}</code></td> |
| * <td></td></tr> |
| * <tr> |
| * <td><code>accessClassInPackage.{package name}</code></td> |
| * <td></td></tr> |
| * <tr> |
| * <td><code>defineClassInPackage.{package name}</code></td> |
| * <td></td></tr> |
| * <tr> |
| * <td><code>accessDeclaredMembers</code></td> |
| * <td></td></tr> |
| * <tr> |
| * <td><code>queuePrintJob</code></td> |
| * <td></td></tr> |
| * </table> |
| * |
| * @since JDK 1.2 |
| * |
| * @author Brian Jones |
| */ |
| public final class RuntimePermission extends java.security.BasicPermission |
| { |
| /** |
| * |
| * @param permissionName the name of the granted permission |
| * |
| * @throws IllegalArgumentException thrown if the name contains an invalid |
| * wildcard character |
| */ |
| public RuntimePermission(String permissionName) |
| { |
| this(permissionName, null); |
| } |
| |
| /** |
| * |
| * @param permissionName the name of the granted permission |
| * @param actions this should always be null |
| * |
| * @throws IllegalArgumentException throw if the name contains an invalid |
| * wildcard character |
| */ |
| public RuntimePermission(String permissionName, String actions) |
| { |
| super(permissionName, actions); |
| } |
| } |