Package org.apache.tools.ant.taskdefs

## Class SetPermissions

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.SetPermissions

- All Implemented Interfaces:
    `java.lang.Cloneable`

      public class SetPermissions
      extends Task

  Sets `PosixFilePermission`s for resources.

  This task provides a subset of `Chmod`'s and `Attrib`'s abilities in less platform dependent way.

  It requires a file system that supports PosixFilePermissions for its full potential. It can optionally fall back to DosFilePermissions (only changing the readonly state) on file systems that don't support POSIX permissions. See `SetPermissions.NonPosixMode`

  Since:
    Ant 1.10.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `SetPermissions.NonPosixMode` | Options for dealing with file systems that don't support POSIX permissions.

  - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SetPermissions()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `add​(ResourceCollection rc)` | Adds a collection of resources to set permissions on.
    `void` | `execute()` | Called by the project to let the task do its work.
    `void` | `setActOnLinkTargets​(boolean actOnLinkTargets)` | Sets whether permissions should be applied to symbolic links or Windows junctions themselves or the link's targets.
    `void` | `setFailOnError​(boolean failonerror)` | Set whether to fail when errors are encountered.
    `void` | `setMode​(java.lang.String octalString)` | A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion;
    `void` | `setNonPosixMode​(SetPermissions.NonPosixMode m)` | Set what to do if changing the permissions of a file is not possible because the file-system doesn't support POSIX file permissions.
    `void` | `setPermissions​(java.lang.String perms)` | Adds permissions as a comma separated list.

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SetPermissions

          public SetPermissions()

  - ### Method Detail

    - #### setPermissions

          public void setPermissions​(java.lang.String perms)

      Adds permissions as a comma separated list.
      Parameters:
        `perms` - comma separated list of names of `PosixFilePermission`s.

    - #### setMode

          public void setMode​(java.lang.String octalString)

      A 3 digit octal string, specify the user, group and other modes in the standard Unix fashion;
      Parameters:
        `octalString` - a `String` value

    - #### setFailOnError

          public void setFailOnError​(boolean failonerror)

      Set whether to fail when errors are encountered. If false, note errors to the output but keep going. Default is true.

      Only applies to IO and SecurityExceptions, see `setNonPosixMode(org.apache.tools.ant.taskdefs.SetPermissions.NonPosixMode)` for ways to deal with file-systems that don't support PosixPermissions.

      Parameters:
        `failonerror` - true or false.

    - #### setNonPosixMode

          public void setNonPosixMode​(SetPermissions.NonPosixMode m)

      Set what to do if changing the permissions of a file is not possible because the file-system doesn't support POSIX file permissions.

      The default is `SetPermissions.NonPosixMode.fail`.

      Parameters:
        `m` - what to do if changing the permissions of a file is not possible

    - #### setActOnLinkTargets

          public void setActOnLinkTargets​(boolean actOnLinkTargets)

      Sets whether permissions should be applied to symbolic links or Windows junctions themselves or the link's targets.

      The default value is `true`.

      Parameters:
        `actOnLinkTargets` - true if permissions of link targets should be set.
      Since:
        Ant 1.10.16

    - #### add

          public void add​(ResourceCollection rc)

      Adds a collection of resources to set permissions on.
      Parameters:
        `rc` - a resource collection

    - #### execute

          public void execute()

      Description copied from class: `Task`
      Called by the project to let the task do its work. This method may be called more than once, if the task is invoked more than once. For example, if target1 and target2 both depend on target3, then running "ant target1 target2" will run all tasks in target3 twice.
      Overrides:
        `execute` in class `Task`