public static StringTable getStringTable() { // approximate size for capacity. int size = 0; for (final SerialNumberManager snm : values) { size += snm.size(); } int tableMaskBits = getMaskBits(); StringTable map = new StringTable(size, tableMaskBits); for (final SerialNumberManager snm : values) { final int mask = snm.getMask(tableMaskBits); for (Entry<Integer, String> entry : snm.entrySet()) { map.put(entry.getKey() | mask, entry.getValue()); } } return map; }
/** Encode the {@link PermissionStatus} to a long. */ static long toLong(PermissionStatus ps) { long permission = 0L; final int user = SerialNumberManager.INSTANCE.getUserSerialNumber( ps.getUserName()); permission = USER.BITS.combine(user, permission); final int group = SerialNumberManager.INSTANCE.getGroupSerialNumber( ps.getGroupName()); permission = GROUP.BITS.combine(group, permission); final int mode = ps.getPermission().toShort(); permission = MODE.BITS.combine(mode, permission); return permission; } }
static String getName(int aclEntry) { int nameExists = (int) NAMED_ENTRY_CHECK.BITS.retrieve(aclEntry); if (nameExists == 0) { return null; } int id = (int) NAME.BITS.retrieve(aclEntry); AclEntryType type = getType(aclEntry); if (type == AclEntryType.USER) { return SerialNumberManager.INSTANCE.getUser(id); } else if (type == AclEntryType.GROUP) { return SerialNumberManager.INSTANCE.getGroup(id); } return null; }
@Override final void setUser(String user) { int n = SerialNumberManager.INSTANCE.getUserSerialNumber(user); updatePermissionStatus(PermissionStatusFormat.USER, n); }
/** Get group name */ public String getGroupName() { int n = (int)PermissionStatusFormat.GROUP.retrieve(permission); return SerialNumberManager.INSTANCE.getGroup(n); } /** Set group */
/** Get user name */ public String getUserName() { int n = (int)PermissionStatusFormat.USER.retrieve(permission); return SerialNumberManager.INSTANCE.getUser(n); } /** Set user */
/** Set group */ protected void setGroup(String group) { int n = SerialNumberManager.INSTANCE.getGroupSerialNumber(group); updatePermissionStatus(PermissionStatusFormat.GROUP, n); } /** Get the {@link FsPermission} */
/** Encode the {@link PermissionStatus} to a long. */ static long toLong(PermissionStatus ps) { long permission = 0L; final int user = SerialNumberManager.INSTANCE.getUserSerialNumber( ps.getUserName()); permission = USER.BITS.combine(user, permission); final int group = SerialNumberManager.INSTANCE.getGroupSerialNumber( ps.getGroupName()); permission = GROUP.BITS.combine(group, permission); final int mode = ps.getPermission().toShort(); permission = MODE.BITS.combine(mode, permission); return permission; } }
static String getName(int aclEntry) { int nameExists = (int) NAMED_ENTRY_CHECK.BITS.retrieve(aclEntry); if (nameExists == 0) { return null; } int id = (int) NAME.BITS.retrieve(aclEntry); AclEntryType type = getType(aclEntry); if (type == AclEntryType.USER) { return SerialNumberManager.INSTANCE.getUser(id); } else if (type == AclEntryType.GROUP) { return SerialNumberManager.INSTANCE.getGroup(id); } return null; }
/** Set user */ protected void setUser(String user) { int n = SerialNumberManager.INSTANCE.getUserSerialNumber(user); updatePermissionStatus(PermissionStatusFormat.USER, n); } /** Get group name */
/** Get group name */ public String getGroupName() { int n = (int)PermissionStatusFormat.GROUP.retrieve(permission); return SerialNumberManager.INSTANCE.getGroup(n); } /** Set group */
/** Get user name */ public String getUserName() { int n = (int)PermissionStatusFormat.USER.retrieve(permission); return SerialNumberManager.INSTANCE.getUser(n); } /** Set user */
@Override final void setGroup(String group) { int n = SerialNumberManager.INSTANCE.getGroupSerialNumber(group); updatePermissionStatus(PermissionStatusFormat.GROUP, n); }
static int toInt(AclEntry aclEntry) { long aclEntryInt = 0; aclEntryInt = SCOPE.BITS .combine(aclEntry.getScope().ordinal(), aclEntryInt); aclEntryInt = TYPE.BITS.combine(aclEntry.getType().ordinal(), aclEntryInt); aclEntryInt = PERMISSION.BITS.combine(aclEntry.getPermission().ordinal(), aclEntryInt); if (aclEntry.getName() != null) { aclEntryInt = NAMED_ENTRY_CHECK.BITS.combine(1, aclEntryInt); if (aclEntry.getType() == AclEntryType.USER) { int userId = SerialNumberManager.INSTANCE.getUserSerialNumber(aclEntry .getName()); aclEntryInt = NAME.BITS.combine(userId, aclEntryInt); } else if (aclEntry.getType() == AclEntryType.GROUP) { int groupId = SerialNumberManager.INSTANCE .getGroupSerialNumber(aclEntry.getName()); aclEntryInt = NAME.BITS.combine(groupId, aclEntryInt); } } return (int) aclEntryInt; }
@Override final void setUser(String user) { int n = SerialNumberManager.INSTANCE.getUserSerialNumber(user); updatePermissionStatus(PermissionStatusFormat.USER, n); }
static String getGroup(long permission) { final int n = (int)GROUP.BITS.retrieve(permission); return SerialNumberManager.INSTANCE.getGroup(n); }
static String getUser(long permission) { final int n = (int)USER.BITS.retrieve(permission); return SerialNumberManager.INSTANCE.getUser(n); }
@Override final void setGroup(String group) { int n = SerialNumberManager.INSTANCE.getGroupSerialNumber(group); updatePermissionStatus(PermissionStatusFormat.GROUP, n); }
static int toInt(AclEntry aclEntry) { long aclEntryInt = 0; aclEntryInt = SCOPE.BITS .combine(aclEntry.getScope().ordinal(), aclEntryInt); aclEntryInt = TYPE.BITS.combine(aclEntry.getType().ordinal(), aclEntryInt); aclEntryInt = PERMISSION.BITS.combine(aclEntry.getPermission().ordinal(), aclEntryInt); if (aclEntry.getName() != null) { aclEntryInt = NAMED_ENTRY_CHECK.BITS.combine(1, aclEntryInt); if (aclEntry.getType() == AclEntryType.USER) { int userId = SerialNumberManager.INSTANCE.getUserSerialNumber(aclEntry .getName()); aclEntryInt = NAME.BITS.combine(userId, aclEntryInt); } else if (aclEntry.getType() == AclEntryType.GROUP) { int groupId = SerialNumberManager.INSTANCE .getGroupSerialNumber(aclEntry.getName()); aclEntryInt = NAME.BITS.combine(groupId, aclEntryInt); } } return (int) aclEntryInt; }