Chmod (Apache Ant API)
Date: 2016-04-09

org.apache.tools.ant.taskdefs

## Class Chmod

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.ExecTask
      - - org.apache.tools.ant.taskdefs.ExecuteOn
        - - org.apache.tools.ant.taskdefs.Chmod

- All Implemented Interfaces:
    java.lang.Cloneable

      public class Chmod
      extends ExecuteOn

  Chmod equivalent for unix-like environments.
  Since:
    Ant 1.1
  To do:
    Refactor so it does not extend from ExecuteOn and then turn around and unsupport several attributes.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.tools.ant.taskdefs.ExecuteOn

      `ExecuteOn.FileDirBoth`

  - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.ExecuteOn

      `destDir, filesets, mapper, mapperElement, srcFilePos, srcIsFirst, targetFilePos, type`

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.ExecTask

      `cmdl, failOnError, newEnvironment, redirector, redirectorElement`

    - ### 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 and Description
    `Chmod()` Chmod task for setting file and directory permissions.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `checkConfiguration()` Check the attributes and nested elements.
    `PatternSet.NameEntry` | `createExclude()` Add a name entry on the exclude list.
    `PatternSet.NameEntry` | `createInclude()` Add a name entry on the include list.
    `PatternSet` | `createPatternSet()` Add a set of patterns.
    `void` | `execute()` Carry out the chmoding.
    `protected boolean` | `isValidOs()` Check if the os is valid.
    `void` | `setAddsourcefile(boolean b)` This is not allowed for Chmod.
    `void` | `setCommand(Commandline cmdl)` Set the command.
    `void` | `setDefaultexcludes(boolean useDefaultExcludes)` Sets whether default exclusions should be used or not.
    `void` | `setDir(java.io.File src)` The directory which holds the files whose permissions must be changed.
    `void` | `setExcludes(java.lang.String excludes)` Sets the set of exclude patterns.
    `void` | `setExecutable(java.lang.String e)` Set the executable.
    `void` | `setFile(java.io.File src)` The file or single directory of which the permissions must be changed.
    `void` | `setIncludes(java.lang.String includes)` Sets the set of include patterns.
    `void` | `setPerm(java.lang.String perm)` Set the new permissions.
    `void` | `setProject(Project project)` Set the project of this task.
    `void` | `setSkipEmptyFilesets(boolean skip)` This is not allowed for Chmod.

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.ExecuteOn

      `add, add, addDirset, addFilelist, addFileset, createHandler, createMapper, createSrcfile, createTargetfile, getCommandline, getCommandline, getDirs, getFiles, getFilesAndDirs, runExec, runParallel, setDest, setForce, setForwardslash, setIgnoremissing, setMaxParallel, setParallel, setRelative, setType, setupRedirector, setVerbose`

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.ExecTask

      `addConfiguredRedirector, addEnv, createArg, createWatchdog, getOs, getOsFamily, getResolveExecutable, logFlush, maybeSetResultPropertyValue, prepareExec, resolveExecutable, runExecute, setAppend, setError, setErrorProperty, setFailIfExecutionFails, setFailonerror, setInput, setInputString, setLogError, setNewenvironment, setOs, setOsFamily, setOutput, setOutputproperty, setResolveExecutable, setResultProperty, setSearchPath, setSpawn, setTimeout, setTimeout, setVMLauncher`

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

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

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

- - ### Constructor Detail

    - #### Chmod

          public Chmod()

      Chmod task for setting file and directory permissions.

  - ### Method Detail

    - #### setProject

          public void setProject(Project project)

      Set the project of this task. Calls the super class and sets the project on dhe default FileSet.
      Overrides:
        `setProject` in class `ProjectComponent`
      Parameters:
        `project` - the project for this task.
      See Also:
        `ProjectComponent.setProject(org.apache.tools.ant.Project)`

    - #### setFile

          public void setFile(java.io.File src)

      The file or single directory of which the permissions must be changed.
      Parameters:
        `src` - the source file or directory.

    - #### setDir

          public void setDir(java.io.File src)

      The directory which holds the files whose permissions must be changed.
      Overrides:
        `setDir` in class `ExecTask`
      Parameters:
        `src` - the directory.

    - #### setPerm

          public void setPerm(java.lang.String perm)

      Set the new permissions.
      Parameters:
        `perm` - the new permissions.

    - #### createInclude

          public PatternSet.NameEntry createInclude()

      Add a name entry on the include list.
      Returns:
        a NameEntry to be configured.

    - #### createExclude

          public PatternSet.NameEntry createExclude()

      Add a name entry on the exclude list.
      Returns:
        a nameentry to be configured.

    - #### createPatternSet

          public PatternSet createPatternSet()

      Add a set of patterns.
      Returns:
        a patternset to be configured.

    - #### setIncludes

          public void setIncludes(java.lang.String includes)

      Sets the set of include patterns. Patterns may be separated by a comma or a space.
      Parameters:
        `includes` - the string containing the include patterns.

    - #### setExcludes

          public void setExcludes(java.lang.String excludes)

      Sets the set of exclude patterns. Patterns may be separated by a comma or a space.
      Parameters:
        `excludes` - the string containing the exclude patterns.

    - #### setDefaultexcludes

          public void setDefaultexcludes(boolean useDefaultExcludes)

      Sets whether default exclusions should be used or not.
      Parameters:
        `useDefaultExcludes` - "true"|"on"|"yes" when default exclusions should be used, "false"|"off"|"no" when they shouldn't be used.

    - #### checkConfiguration

          protected void checkConfiguration()

      Check the attributes and nested elements.
      Overrides:
        `checkConfiguration` in class `ExecuteOn`

    - #### execute

          public void execute()
                       throws BuildException

      Carry out the chmoding.
      Overrides:
        `execute` in class `ExecTask`
      Throws:
        `BuildException` - on error.

    - #### setExecutable

          public void setExecutable(java.lang.String e)

      Set the executable. This is not allowed for Chmod.
      Overrides:
        `setExecutable` in class `ExecTask`
      Parameters:
        `e` - ignored.
      Throws:
        `BuildException` - always.

    - #### setCommand

          public void setCommand(Commandline cmdl)

      Set the command. This is not allowed for Chmod.
      Overrides:
        `setCommand` in class `ExecTask`
      Parameters:
        `cmdl` - ignored.
      Throws:
        `BuildException` - always.

    - #### setSkipEmptyFilesets

          public void setSkipEmptyFilesets(boolean skip)

      This is not allowed for Chmod.
      Overrides:
        `setSkipEmptyFilesets` in class `ExecuteOn`
      Parameters:
        `skip` - ignored.
      Throws:
        `BuildException` - always.

    - #### setAddsourcefile

          public void setAddsourcefile(boolean b)

      This is not allowed for Chmod.
      Overrides:
        `setAddsourcefile` in class `ExecuteOn`
      Parameters:
        `b` - ignored.
      Throws:
        `BuildException` - always.

    - #### isValidOs

          protected boolean isValidOs()

      Check if the os is valid. Always include unix.
      Overrides:
        `isValidOs` in class `ExecTask`
      Returns:
        true if the os is valid.