private static void addPermissions(Set<PosixFilePermission> permissions, String prefix, long mode) { if ((mode & 1) == 1) { permissions.add(PosixFilePermission.valueOf(prefix + "_EXECUTE")); } if ((mode & 2) == 2) { permissions.add(PosixFilePermission.valueOf(prefix + "_WRITE")); } if ((mode & 4) == 4) { permissions.add(PosixFilePermission.valueOf(prefix + "_READ")); } }
private static long modeFromPermissions(Set<PosixFilePermission> permissions, String prefix) { long mode = 0; if (permissions.contains(PosixFilePermission.valueOf(prefix + "_READ"))) { mode |= 4; } if (permissions.contains(PosixFilePermission.valueOf(prefix + "_WRITE"))) { mode |= 2; } if (permissions.contains(PosixFilePermission.valueOf(prefix + "_EXECUTE"))) { mode |= 1; } return mode; }
private Set<PosixFilePermission> singleIntToFilePermission(Integer mode, String groupType) { Set<PosixFilePermission> permissions = new HashSet<>(9); if (Arrays.asList(new Integer[] { 1, 3, 5, 7 }).contains(mode)) { permissions.add(PosixFilePermission.valueOf(groupType + "_EXECUTE")); } if (Arrays.asList(new Integer[] { 2, 3, 6, 7 }).contains(mode)) { permissions.add(PosixFilePermission.valueOf(groupType + "_WRITE")); } if (Arrays.asList(new Integer[] { 4, 5, 6, 7 }).contains(mode)) { permissions.add(PosixFilePermission.valueOf(groupType + "_READ")); } return permissions; }