@Override final void setUser(String user) { int n = SerialNumberManager.USER.getSerialNumber(user); updatePermissionStatus(PermissionStatusFormat.USER, n); }
@Override final void setGroup(String group) { int n = SerialNumberManager.GROUP.getSerialNumber(group); updatePermissionStatus(PermissionStatusFormat.GROUP, n); }
/** Encode the {@link PermissionStatus} to a long. */ static long toLong(PermissionStatus ps) { long permission = 0L; final int user = SerialNumberManager.USER.getSerialNumber( ps.getUserName()); assert user != 0; permission = USER.BITS.combine(user, permission); // ideally should assert on group but inodes are created with null // group and then updated only when added to a directory. final int group = SerialNumberManager.GROUP.getSerialNumber( ps.getGroupName()); permission = GROUP.BITS.combine(group, permission); final int mode = ps.getPermission().toShort(); permission = MODE.BITS.combine(mode, permission); return permission; }
static int toInt(XAttr a) { int nid = SerialNumberManager.XATTR.getSerialNumber(a.getName()); int nsOrd = a.getNameSpace().ordinal(); long value = NS.BITS.combine(nsOrd & NS_MASK, 0L); value = NS_EXT.BITS.combine(nsOrd >>> NS_EXT_SHIFT, value); value = NAME.BITS.combine(nid, value); return (int)value; }
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); SerialNumberManager snm = getSerialNumberManager(aclEntry.getType()); if (snm != null) { int nid = snm.getSerialNumber(aclEntry.getName()); aclEntryInt = NAME.BITS.combine(nid, aclEntryInt); } return (int) aclEntryInt; }