Class PermissionUtils


  • public class PermissionUtils
    extends java.lang.Object
    Contains helper methods for dealing with PosixFilePermission or the traditional Unix mode representation of permissions.
    Since:
    Ant 1.10.0
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  PermissionUtils.FileType
      The supported types of files, maps to the isFoo methods in BasicFileAttributes.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.util.Set<java.nio.file.attribute.PosixFilePermission> getPermissions​(Resource r, java.util.function.Function<java.nio.file.Path,​java.util.Set<java.nio.file.attribute.PosixFilePermission>> posixNotSupportedFallback)
      Sets permissions of a Resource - returns an empty set for unsupported resource types or file systems that don't support PosixFilePermissions and no fallback has been provided..
      static int modeFromPermissions​(java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions, PermissionUtils.FileType type)
      Translates a set of permissions into a Unix stat(2) st_mode result.
      static java.util.Set<java.nio.file.attribute.PosixFilePermission> permissionsFromMode​(int mode)
      Translates a Unix stat(2) st_mode compatible value into a set of permissions.
      static void setPermissions​(Resource r, java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions, java.util.function.Consumer<java.nio.file.Path> posixNotSupportedCallback)
      Sets permissions on a Resource - doesn't do anything for unsupported resource types.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • modeFromPermissions

        public static int modeFromPermissions​(java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions,
                                              PermissionUtils.FileType type)
        Translates a set of permissions into a Unix stat(2) st_mode result.
        Parameters:
        permissions - the permissions
        type - the file type
        Returns:
        the "mode"
      • permissionsFromMode

        public static java.util.Set<java.nio.file.attribute.PosixFilePermission> permissionsFromMode​(int mode)
        Translates a Unix stat(2) st_mode compatible value into a set of permissions.
        Parameters:
        mode - the "mode"
        Returns:
        set of permissions
      • setPermissions

        public static void setPermissions​(Resource r,
                                          java.util.Set<java.nio.file.attribute.PosixFilePermission> permissions,
                                          java.util.function.Consumer<java.nio.file.Path> posixNotSupportedCallback)
                                   throws java.io.IOException
        Sets permissions on a Resource - doesn't do anything for unsupported resource types.

        Supported types are:

        Parameters:
        r - the resource to set permissions for
        permissions - the permissions
        posixNotSupportedCallback - optional callback that is invoked for a file provider resource if the file-system holding the file doesn't support PosixFilePermissions. The Path corresponding to the file is passed to the callback.
        Throws:
        java.io.IOException - if something goes wrong
      • getPermissions

        public static java.util.Set<java.nio.file.attribute.PosixFilePermission> getPermissions​(Resource r,
                                                                                                java.util.function.Function<java.nio.file.Path,​java.util.Set<java.nio.file.attribute.PosixFilePermission>> posixNotSupportedFallback)
                                                                                         throws java.io.IOException
        Sets permissions of a Resource - returns an empty set for unsupported resource types or file systems that don't support PosixFilePermissions and no fallback has been provided..

        Supported types are:

        Parameters:
        r - the resource to read permissions from
        posixNotSupportedFallback - optional fallback function to provide permissions for file system that don't support PosixFilePermissions. The Path corresponding to the file is passed to the callback.
        Returns:
        the permissions
        Throws:
        java.io.IOException - if something goes wrong