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