Package: org.gradle.plugins.signing

## [Groovy] Class Signature

- org.gradle.plugins.signing.Signature

- A digital signature file artifact.

  A signature file is always generated from another file, which may be a PublishArtifact.

- - ### Properties Summary

    Properties
    Type | Name and description
    --- | ---
    `String` | `classifier` The classifier of the signature artifact.
    `Date` | `date` The date of the signature arifact.
    `String` | `extension` The extension of the signature artifact.
    `File` | `file` The signature file.
    `String` | `name` The name of the signature artifact.
    `SignatureSpec` | `signatureSpec` The specification of how to generate the signature.
    `PublishArtifact` | `toSignArtifact` The artifact that this signature is for, which may be `null` if this signature is not for an artifact.
    `String` | `type` The type of the signature artifact.

  - ### Constructor Summary

    Constructors
    Constructor and description
    `Signature (PublishArtifact toSign, SignatureSpec signatureSpec, Object... tasks)` Creates a signature artifact for the given public artifact.
    `Signature (File toSign, SignatureSpec signatureSpec, Object... tasks)` Creates a signature artifact for the given file.
    `Signature (File toSign, String classifier, SignatureSpec signatureSpec, Object... tasks)` Creates a signature artifact for the given file, with the given classifier.
    `Signature (Closure toSign, Closure classifier, SignatureSpec signatureSpec, Object... tasks)` Creates a signature artifact for the file returned by the `toSign` closure.

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `void` | `generate()` Generates the signature file.
    `String` | `getClassifier()` The classifier of the signature artifact.
    `Date` | `getDate()` The date of the signature artifact.
    `String` | `getExtension()` The extension of the signature artifact.
    `File` | `getFile()` The file for the generated signature, which may not yet exist.
    `String` | `getName()` The name of the signature artifact.
    `Signatory` | `getSignatory()` The signatory of this signature file.
    `SignatureType` | `getSignatureType()` The file representation type of the signature.
    `File` | `getToSign()` The file that is to be signed.
    `String` | `getType()` The type of the signature artifact.

- - ### Property Detail

    - #### String classifier

      The classifier of the signature artifact.

      See Also:
        getClassifier()

    - #### Date date

      The date of the signature arifact.

      See Also:
        getDate()

    - #### String extension

      The extension of the signature artifact.

      See Also:
        getExtension()

    - #### File file

      The signature file.

      See Also:
        getFile()

    - #### String name

      The name of the signature artifact.

      See Also:
        getName()

    - #### SignatureSpec signatureSpec

      The specification of how to generate the signature.

    - #### final PublishArtifact toSignArtifact

      The artifact that this signature is for, which may be `null` if this signature is not for an artifact.

    - #### String type

      The type of the signature artifact.

      See Also:
        getType()

  - ### Constructor Detail

    - #### Signature(PublishArtifact toSign, SignatureSpec signatureSpec, Object... tasks)

      Creates a signature artifact for the given public artifact.

      The file to sign will be the file of the given artifact and the classifier of this signature artifact will default to the classifier of the given artifact to sign.

      The artifact to sign may change after being used as the source for this signature.

      Parameters:
        `toSign` - The artifact that is to be signed
        `signatureSpec` - The specification of how the artifact is to be signed
        `tasks` - The task(s) that will invoke generate() on this signature (optional)

    - #### Signature(File toSign, SignatureSpec signatureSpec, Object... tasks)

      Creates a signature artifact for the given file.

      Parameters:
        `toSign` - The file that is to be signed
        `signatureSpec` - The specification of how the artifact is to be signed
        `tasks` - The task(s) that will invoke generate() on this signature (optional)

    - #### Signature(File toSign, String classifier, SignatureSpec signatureSpec, Object... tasks)

      Creates a signature artifact for the given file, with the given classifier.

      Parameters:
        `toSign` - The file that is to be signed
        `classifier` - The classifier to assign to the signature (should match the files)
        `signatureSpec` - The specification of how the artifact is to be signed
        `tasks` - The task(s) that will invoke generate() on this signature (optional)

    - #### Signature(Closure toSign, Closure classifier, SignatureSpec signatureSpec, Object... tasks)

      Creates a signature artifact for the file returned by the `toSign` closure.

      The closures will be “evaluated” on demand whenever the value is needed (e.g. at generation time)

      Parameters:
        `toSign` - A closure that produces a File for the object to sign (non File return values will be used as the path to the file)
        `classifier` - A closure that produces the classifier to assign to the signature artifact on demand
        `signatureSpec` - The specification of how the artifact is to be signed
        `tasks` - The task(s) that will invoke generate() on this signature (optional)

  - ### Method Detail

    - #### void generate()

      Generates the signature file.

      In order to generate the signature, the file to sign, signatory and signature type must be known (i.e. non `null`).

      throws:
        InvalidUserDataException if the there is insufficient information available to generate the signature.

    - #### String getClassifier()

      The classifier of the signature artifact.

      Defaults to the classifier of the source artifact (if signing an artifact) or the given classifier at construction (if given).

      Returns:
        The classifier. May be `null` if unknown at this time.

    - #### Date getDate()

      The date of the signature artifact.

      Defaults to the last modified time of the signature file (if exists)

      Returns:
        The date of the signature. May be `null` if unknown at this time.

    - #### String getExtension()

      The extension of the signature artifact.

      Defaults to the specified file extension of the signature type.

      Returns:
        The extension. May be `null` if unknown at this time.

    - #### File getFile()

      The file for the generated signature, which may not yet exist.

      Defaults to a file alongside the file to sign with the extension of the signature type.

      Returns:
        The signature file. May be `null` if unknown at this time.

    - #### String getName()

      The name of the signature artifact.

      Defaults to the name of the signature file.

      Returns:
        The name. May be `null` if unknown at this time.

    - #### Signatory getSignatory()

      The signatory of this signature file.

      Returns:
        The signatory. May be `null` if unknown at this time.

    - #### SignatureType getSignatureType()

      The file representation type of the signature.

      Returns:
        The signature type. May be `null` if unknown at this time.

    - #### File getToSign()

      The file that is to be signed.

      Returns:
        The file. May be `null` if unknown at this time.

    - #### String getType()

      The type of the signature artifact.

      Defaults to the extension of the file to sign plus the extension of the signature type. For example, when signing the file ‘my.zip’ with a signature type with extension ‘sig’, the default type is ‘zip.sig’.

      Returns:
        The type. May be `null` if the file to sign or signature type are unknown at this time.