org.apache.tools.ant.taskdefs

## Class Checksum

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

- All Implemented Interfaces:
    java.lang.Cloneable, Condition, SelectorContainer

      public class Checksum
      extends MatchingTask
      implements Condition

  Used to create or verify file checksums.
  Since:
    Ant 1.5

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Checksum.FormatElement` Helper class for the format attribute.

  - ### Field Summary

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

      `fileset`

    - ### 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
    `Checksum()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(ResourceCollection rc)` Add a resource collection.
    `void` | `addFileset(FileSet set)` Files to generate checksums for.
    `static byte[]` | `decodeHex(char[] data)` Converts an array of characters representing hexadecimal values into an array of bytes of those same values.
    `boolean` | `eval()` Calculate the checksum(s)
    `void` | `execute()` Calculate the checksum(s).
    `void` | `setAlgorithm(java.lang.String algorithm)` Specifies the algorithm to be used to compute the checksum.
    `void` | `setFile(java.io.File file)` Sets the file for which the checksum is to be calculated.
    `void` | `setFileext(java.lang.String fileext)` Sets the file extension that is be to used to create or identify destination file.
    `void` | `setForceOverwrite(boolean forceOverwrite)` Whether or not to overwrite existing file irrespective of whether it is newer than the source file.
    `void` | `setFormat(Checksum.FormatElement e)` Select the in/output pattern via a well know format name.
    `void` | `setPattern(java.lang.String p)` Specify the pattern to use as a MessageFormat pattern.
    `void` | `setProperty(java.lang.String property)` Sets the property to hold the generated checksum.
    `void` | `setProvider(java.lang.String provider)` Sets the MessageDigest algorithm provider to be used to calculate the checksum.
    `void` | `setReadBufferSize(int size)` The size of the read buffer to use.
    `void` | `setTodir(java.io.File todir)` Sets the root directory where checksum files will be written/read
    `void` | `setTotalproperty(java.lang.String totalproperty)` Sets the property to hold the generated total checksum for all files.
    `void` | `setVerifyproperty(java.lang.String verifyProperty)` Sets the verify property.

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

      `add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems`

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

    - #### Checksum

          public Checksum()

  - ### Method Detail

    - #### setFile

          public void setFile(java.io.File file)

      Sets the file for which the checksum is to be calculated.
      Parameters:
        `file` - a `File` value

    - #### setTodir

          public void setTodir(java.io.File todir)

      Sets the root directory where checksum files will be written/read
      Parameters:
        `todir` - the directory to write to
      Since:
        Ant 1.6

    - #### setAlgorithm

          public void setAlgorithm(java.lang.String algorithm)

      Specifies the algorithm to be used to compute the checksum. Defaults to "MD5". Other popular algorithms like "SHA" may be used as well.
      Parameters:
        `algorithm` - a `String` value

    - #### setProvider

          public void setProvider(java.lang.String provider)

      Sets the MessageDigest algorithm provider to be used to calculate the checksum.
      Parameters:
        `provider` - a `String` value

    - #### setFileext

          public void setFileext(java.lang.String fileext)

      Sets the file extension that is be to used to create or identify destination file.
      Parameters:
        `fileext` - a `String` value

    - #### setProperty

          public void setProperty(java.lang.String property)

      Sets the property to hold the generated checksum.
      Parameters:
        `property` - a `String` value

    - #### setTotalproperty

          public void setTotalproperty(java.lang.String totalproperty)

      Sets the property to hold the generated total checksum for all files.
      Parameters:
        `totalproperty` - a `String` value
      Since:
        Ant 1.6

    - #### setVerifyproperty

          public void setVerifyproperty(java.lang.String verifyProperty)

      Sets the verify property. This project property holds the result of a checksum verification - "true" or "false"
      Parameters:
        `verifyProperty` - a `String` value

    - #### setForceOverwrite

          public void setForceOverwrite(boolean forceOverwrite)

      Whether or not to overwrite existing file irrespective of whether it is newer than the source file. Defaults to false.
      Parameters:
        `forceOverwrite` - a `boolean` value

    - #### setReadBufferSize

          public void setReadBufferSize(int size)

      The size of the read buffer to use.
      Parameters:
        `size` - an `int` value

    - #### setFormat

          public void setFormat(Checksum.FormatElement e)

      Select the in/output pattern via a well know format name.
      Parameters:
        `e` - an `enumerated` value
      Since:
        1.7.0

    - #### setPattern

          public void setPattern(java.lang.String p)

      Specify the pattern to use as a MessageFormat pattern.

      {0} gets replaced by the checksum, {1} by the filename.

      Parameters:
        `p` - a `String` value
      Since:
        1.7.0

    - #### addFileset

          public void addFileset(FileSet set)

      Files to generate checksums for.
      Parameters:
        `set` - a fileset of files to generate checksums for.

    - #### add

          public void add(ResourceCollection rc)

      Add a resource collection.
      Parameters:
        `rc` - the ResourceCollection to add.

    - #### execute

          public void execute()
                       throws BuildException

      Calculate the checksum(s).
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - on error

    - #### eval

          public boolean eval()
                       throws BuildException

      Calculate the checksum(s)
      Specified by:
        `eval` in interface `Condition`
      Returns:
        Returns true if the checksum verification test passed, false otherwise.
      Throws:
        `BuildException` - on error

    - #### decodeHex

          public static byte[] decodeHex(char[] data)
                                  throws BuildException

      Converts an array of characters representing hexadecimal values into an array of bytes of those same values. The returned array will be half the length of the passed array, as it takes two characters to represent any given byte. An exception is thrown if the passed char array has an odd number of elements. NOTE: This code is copied from jakarta-commons codec.
      Parameters:
        `data` - an array of characters representing hexadecimal values
      Returns:
        the converted array of bytes
      Throws:
        `BuildException` - on error