Class PermissionUtils

java.lang.Object
org.apache.tools.ant.util.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

    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 Details

    • 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