class PermissionClaimed extends PermissionState { public void deniedBy(SystemAdmin admin, SystemPermission permission){ if (!permission.getAdmin().equals(admin)) return; permission.setIsGranted(false); permission.setIsUnixPermissionGranted(false); permission.setState(DENIED); permission.notifyUserOfPermissionRequestResult(); } public void grantedBy(SystemAdmin admin, SystemPermission permission){ if (!permission.getAdmin().equlas(admin)) return; if (permission.getProfile().isUnixPermissionRequired() && !permission.isUnixPermissionGranted()){ permission.setState(UNIX_REQUESTED); permission.notifyUnixAdminsOfPermissionRequest(); return; } permission.setState(GRANTED); permission.setIsGranted(true); permission.notifyUserOfPermissionRequestResult(); } }