1179 * the set, false if not.
1180 */
1181 @Override
1182 public boolean implies(Permission permission) {
1183 if (! (permission instanceof FilePermission))
1184 return false;
1185
1186 FilePermission fperm = (FilePermission) permission;
1187
1188 int desired = fperm.getMask();
1189 int effective = 0;
1190 int needed = desired;
1191
1192 for (Permission perm : perms.values()) {
1193 FilePermission fp = (FilePermission)perm;
1194 if (((needed & fp.getMask()) != 0) && fp.impliesIgnoreMask(fperm)) {
1195 effective |= fp.getMask();
1196 if ((effective & desired) == desired) {
1197 return true;
1198 }
1199 needed = (desired ^ effective);
1200 }
1201 }
1202 return false;
1203 }
1204
1205 /**
1206 * Returns an enumeration of all the FilePermission objects in the
1207 * container.
1208 *
1209 * @return an enumeration of all the FilePermission objects.
1210 */
1211 @Override
1212 public Enumeration<Permission> elements() {
1213 return perms.elements();
1214 }
1215
1216 @java.io.Serial
1217 private static final long serialVersionUID = 2202956749081564585L;
1218
1219 // Need to maintain serialization interoperability with earlier releases,
|
1179 * the set, false if not.
1180 */
1181 @Override
1182 public boolean implies(Permission permission) {
1183 if (! (permission instanceof FilePermission))
1184 return false;
1185
1186 FilePermission fperm = (FilePermission) permission;
1187
1188 int desired = fperm.getMask();
1189 int effective = 0;
1190 int needed = desired;
1191
1192 for (Permission perm : perms.values()) {
1193 FilePermission fp = (FilePermission)perm;
1194 if (((needed & fp.getMask()) != 0) && fp.impliesIgnoreMask(fperm)) {
1195 effective |= fp.getMask();
1196 if ((effective & desired) == desired) {
1197 return true;
1198 }
1199 needed = (desired & ~effective);
1200 }
1201 }
1202 return false;
1203 }
1204
1205 /**
1206 * Returns an enumeration of all the FilePermission objects in the
1207 * container.
1208 *
1209 * @return an enumeration of all the FilePermission objects.
1210 */
1211 @Override
1212 public Enumeration<Permission> elements() {
1213 return perms.elements();
1214 }
1215
1216 @java.io.Serial
1217 private static final long serialVersionUID = 2202956749081564585L;
1218
1219 // Need to maintain serialization interoperability with earlier releases,
|