Repository
Date: 2014-12-13

org.apache.ivy.plugins.repository

## Interface Repository

- All Known Implementing Classes:
    AbstractRepository, AbstractSshBasedRepository, ChainedRepository, FileRepository, JarRepository, RelativeURLRepository, SFTPRepository, SshRepository, URLRepository, VfsRepository, VsftpRepository

      public interface Repository

  Represents a collection of resources available to Ivy. Ivy uses one or more repositories as both a source of resources for Ivy enabled build systems and as a distribution center for resources generated by Ivy enabled build systems.

  A repository supports the following fundamental operations

  - retrieving a resource from the repository.
  - transferring a resource to the repository.
  - retrieving a listing of resources.

  #### Resource Retrieval

  `get(java.lang.String, java.io.File)` retrieves a resource specified by a provided identifier creating a new file .

  #### resource Publication

  `put(org.apache.ivy.core.module.descriptor.Artifact, java.io.File, java.lang.String, boolean)` transfers a file to the repository.

  #### resource Listing

  `list(java.lang.String)` returns a listing of file like objects belonging to a specified parent directory.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addTransferListener(TransferListener listener)` Add a listener to the repository.
    `void` | `get(java.lang.String source, java.io.File destination)` Fetch a resource from the repository.
    `java.lang.String` | `getFileSeparator()` Get the repository's file separator string.
    `java.lang.String` | `getName()` Return the name of the repository
    `Resource` | `getResource(java.lang.String source)` Return the resource associated with a specified identifier.
    `boolean` | `hasTransferListener(TransferListener listener)` Determine if a given listener is attached to the repository.
    `java.util.List` | `list(java.lang.String parent)` Return a listing of resources names
    `void` | `put(Artifact artifact, java.io.File source, java.lang.String destination, boolean overwrite)` Transfer a resource to the repository
    `void` | `removeTransferListener(TransferListener listener)` Remove a listener on the repository
    `java.lang.String` | `standardize(java.lang.String source)` Normalize a string.

- - ### Method Detail

    - #### getResource

          Resource getResource(java.lang.String source)
                               throws java.io.IOException

      Return the resource associated with a specified identifier. If the resource does not exist, it should return a Resource with exists() returning false. An IOException should only be thrown when a real IO problem occurs, like the impossibility to connect to a server.
      Parameters:
        `source` - A string identifying the resource.
      Returns:
        The resource associated with the resource identifier.
      Throws:
        `java.io.IOException` - On error while trying to get resource.

    - #### get

          void get(java.lang.String source,
                 java.io.File destination)
                   throws java.io.IOException

      Fetch a resource from the repository.
      Parameters:
        `source` - A string identifying the resource to be fetched.
        `destination` - Where to place the fetched resource.
      Throws:
        `java.io.IOException` - On retrieval failure.

    - #### put

          void put(Artifact artifact,
                 java.io.File source,
                 java.lang.String destination,
                 boolean overwrite)
                   throws java.io.IOException

      Transfer a resource to the repository
      Parameters:
        `artifact` - The artifact to be transferred.
        `source` - The local file to be transferred.
        `destination` - Where to transfer the resource.
        `overwrite` - Whether the transfer should overwrite an existing resource.
      Throws:
        `java.io.IOException` - On publication failure.

    - #### list

          java.util.List list(java.lang.String parent)
                              throws java.io.IOException

      Return a listing of resources names
      Parameters:
        `parent` - The parent directory from which to generate the listing.
      Returns:
        A listing of the parent directory's file content, as a List of String.
      Throws:
        `java.io.IOException` - On listing failure.

    - #### addTransferListener

          void addTransferListener(TransferListener listener)

      Add a listener to the repository.
      Parameters:
        `listener` - The listener to attach to the repository.

    - #### removeTransferListener

          void removeTransferListener(TransferListener listener)

      Remove a listener on the repository
      Parameters:
        `listener` - The listener to remove

    - #### hasTransferListener

          boolean hasTransferListener(TransferListener listener)

      Determine if a given listener is attached to the repository.
      Parameters:
        `listener` - The listener being queried
      Returns:
        `true` if the provided listener is attached to the repository, `false` if not.

    - #### getFileSeparator

          java.lang.String getFileSeparator()

      Get the repository's file separator string.
      Returns:
        The repository's file separator delimiter

    - #### standardize

          java.lang.String standardize(java.lang.String source)

      Normalize a string.
      Parameters:
        `source` - The string to normalize.
      Returns:
        The normalized string.

    - #### getName

          java.lang.String getName()

      Return the name of the repository