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

- ## Method Summary

  Modifier and Type
  Method
  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(File src)`
  The directory which holds the files whose permissions must be changed.
  `void`
  `setExcludes(String excludes)`
  Sets the set of exclude patterns.
  `void`
  `setExecutable(String e)`
  Set the executable.
  `void`
  `setFile(File src)`
  The file or single directory of which the permissions must be changed.
  `void`
  `setIncludes(String includes)`
  Sets the set of include patterns.
  `void`
  `setPerm(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, setDiscardError, setDiscardOutput, 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 Details

  - ### Chmod

    public Chmod()
    Chmod task for setting file and directory permissions.

- ## Method Details

  - ### 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(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(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(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(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(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(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.