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:
  `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 enum`
  `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

  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`
  `setFailOnError(boolean failonerror)`
  Set whether to fail when errors are encountered.
  `void`
  `setMode(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(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 Details

  - ### SetPermissions

    public SetPermissions()

- ## Method Details

  - ### setPermissions

    public void setPermissions(String perms)
    Adds permissions as a comma separated list.
    Parameters:
      `perms` - comma separated list of names of `PosixFilePermission`s.

  - ### setMode

    public void setMode(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

  - ### 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`