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