private static int getUnixMode()

in src/main/java/org/apache/netbeans/nbpackage/ArchiveUtils.java [479:520]


    private static int getUnixMode(Path file) throws IOException {
        PosixFileAttributeView fileAttributeView = Files.getFileAttributeView(file, PosixFileAttributeView.class, NOFOLLOW_LINKS);
        if (fileAttributeView == null) {
            if (Files.isSymbolicLink(file)) {
                return DEFAULT_LINK_MODE;
            } else if (Files.isDirectory(file)) {
                return DEFAULT_DIRECTORY_MODE;
            }
            return DEFAULT_FILE_MODE;
        }
        int mode = 0;
        Set<PosixFilePermission> permissions = fileAttributeView.readAttributes().permissions();
        if (permissions.contains(PosixFilePermission.OWNER_READ)) {
            mode |= OWNER_READ_BIT_MASK;
        }
        if (permissions.contains(PosixFilePermission.OWNER_WRITE)) {
            mode |= OWNER_WRITE_BIT_MASK;
        }
        if (permissions.contains(PosixFilePermission.OWNER_EXECUTE)) {
            mode |= OWNER_EXECUTE_BIT_MASK;
        }
        if (permissions.contains(PosixFilePermission.GROUP_READ)) {
            mode |= GROUP_READ_BIT_MASK;
        }
        if (permissions.contains(PosixFilePermission.GROUP_WRITE)) {
            mode |= GROUP_WRITE_BIT_MASK;
        }
        if (permissions.contains(PosixFilePermission.GROUP_EXECUTE)) {
            mode |= GROUP_EXECUTE_BIT_MASK;
        }
        if (permissions.contains(PosixFilePermission.OTHERS_READ)) {
            mode |= OTHERS_READ_BIT_MASK;
        }
        if (permissions.contains(PosixFilePermission.OTHERS_WRITE)) {
            mode |= OTHERS_WRITE_BIT_MASK;
        }
        if (permissions.contains(PosixFilePermission.OTHERS_EXECUTE)) {
            mode |= OTHERS_EXECUTE_BIT_MASK;
        }
//        LOG.log(System.Logger.Level.TRACE, "Unix mode of file=" + file + ", mode=" + Integer.toOctalString(mode) + ", permissions=" + permissions);
        return mode;
    }