consolidate bitmask logic and fix subtle bug...

This commit is contained in:
Shikhar Bhushan
2010-08-08 17:55:30 +01:00
parent ebd5036d64
commit 17eb5cff0f

View File

@@ -68,13 +68,13 @@ public enum FilePermission {
} }
public boolean isIn(int mask) { public boolean isIn(int mask) {
return (mask & val) == mask; return (mask & val) == val;
} }
public static Set<FilePermission> fromMask(int mask) { public static Set<FilePermission> fromMask(int mask) {
List<FilePermission> perms = new LinkedList<FilePermission>(); final List<FilePermission> perms = new LinkedList<FilePermission>();
for (FilePermission p : FilePermission.values()) for (FilePermission p : FilePermission.values())
if ((mask & p.val) == p.val) if (p.isIn(mask))
perms.add(p); perms.add(p);
return new HashSet<FilePermission>(perms); return new HashSet<FilePermission>(perms);
} }