001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package java.security;
019:
020: /**
021: * Subclass of Permission whose instances imply all other permissions. Granting
022: * this permission is equivalent to disabling security.
023: *
024: */
025: public final class AllPermission extends Permission {
026:
027: /**
028: * @serial
029: */
030: private static final long serialVersionUID = -2916474571451318075L;
031:
032: // Permission name
033: private static final String ALL_PERMISSIONS = "<all permissions>"; //$NON-NLS-1$
034:
035: // Actions name
036: private static final String ALL_ACTIONS = "<all actions>"; //$NON-NLS-1$
037:
038: /**
039: * Constructs a new instance of this class. The two argument version is
040: * provided for class <code>Policy</code> so that it has a consistent call
041: * pattern across all Permissions. The name and action list are both
042: * ignored.
043: *
044: * @param name
045: * java.lang.String ignored.
046: * @param actions
047: * java.lang.String ignored.
048: */
049: public AllPermission(String name, String actions) {
050: super (ALL_PERMISSIONS);
051: }
052:
053: /**
054: * Constructs a new instance of this class.
055: */
056: public AllPermission() {
057: super (ALL_PERMISSIONS);
058: }
059:
060: /**
061: * Compares the argument to the receiver, and answers true if they represent
062: * the <em>same</em> object using a class specific comparison. All
063: * AllPermissions are equal to each other.
064: *
065: * @param obj
066: * the object to compare with this object
067: * @return <code>true</code> if the object is the same as this object
068: * <code>false</code> if it is different from this object
069: * @see #hashCode
070: */
071: public boolean equals(Object obj) {
072: return (obj instanceof AllPermission);
073: }
074:
075: /**
076: * Answers an integer hash code for the receiver. Any two objects which
077: * answer <code>true</code> when passed to <code>equals</code> must
078: * answer the same value for this method.
079: *
080: * @return the receiver's hash
081: *
082: * @see #equals
083: */
084: public int hashCode() {
085: return 1;
086: }
087:
088: /**
089: * Answers the actions associated with the receiver. Since AllPermission
090: * objects allow all actions, answer with the string "<all actions>".
091: *
092: * @return String the actions associated with the receiver.
093: */
094: public String getActions() {
095: return ALL_ACTIONS;
096: }
097:
098: /**
099: * Indicates whether the argument permission is implied by the receiver.
100: * AllPermission objects imply all other permissions.
101: *
102: * @return boolean <code>true</code> if the argument permission is implied
103: * by the receiver, and <code>false</code> if it is not.
104: * @param permission
105: * java.security.Permission the permission to check
106: */
107: public boolean implies(Permission permission) {
108: return true;
109: }
110:
111: /**
112: * Answers a new PermissionCollection for holding permissions of this class.
113: * Answer null if any permission collection can be used.
114: *
115: * @return a new PermissionCollection or null
116: *
117: * @see java.security.BasicPermissionCollection
118: */
119: public PermissionCollection newPermissionCollection() {
120: return new AllPermissionCollection();
121: }
122: }
|