org.apache.ivy.plugins.resolver

## Interface DependencyResolver

All Known Implementing Classes:
  AbstractOSGiResolver, AbstractPatternsBasedResolver, AbstractResolver, AbstractSshBasedResolver, AggregatedOSGiResolver, BasicResolver, BintrayResolver, CacheResolver, ChainResolver, DualResolver, FileSystemResolver, IBiblioResolver, IvyRepResolver, JarResolver, MirroredURLResolver, OBRResolver, PackagerResolver, RepositoryResolver, SFTPResolver, SshResolver, UpdateSiteResolver, URLResolver, VfsResolver, VsftpResolver

    public interface DependencyResolver

### Method Summary

Methods
`void` `abortPublishTransaction()`
`void` `beginPublishTransaction(ModuleRevisionId module, boolean overwrite)`
`void` `commitPublishTransaction()`
`DownloadReport` `download(Artifact[] artifacts, DownloadOptions options)` Download artifacts with specified DownloadOptions.
`ArtifactDownloadReport` `download(ArtifactOrigin artifact, DownloadOptions options)` Download an artifact according to the given DownloadOptions.
`void` `dumpSettings()`
`boolean` `exists(Artifact artifact)` Returns `true` if the given artifact can be located by this resolver and actually exist.
`ResolvedResource` `findIvyFileRef(DependencyDescriptor dd, ResolveData data)` Finds the module descriptor for the specified `DependencyDescriptor`.

`ResolvedModuleRevision`

`getDependency(DependencyDescriptor dd, ResolveData data)`
Resolve a module by id, getting its module descriptor and resolving the revision if it's a latest one (i.e. a revision uniquely identifying the revision of a module in the current environment - If this revision is not able to identify uniquely the revision of the module outside of the current environment, then the resolved revision must begin by ##)

`java.lang.String` `getName()`
`Namespace` `getNamespace()` Returns the namespace associated with this resolver.
`RepositoryCacheManager` `getRepositoryCacheManager()` Returns the `RepositoryCacheManager` used to manage the repository cache associated with this dependency resolver.
`ModuleEntry[]` `listModules(OrganisationEntry org)`
`OrganisationEntry[]` `listOrganisations()`
`RevisionEntry[]` `listRevisions(ModuleEntry module)`
`java.util.Map[]` `listTokenValues(java.lang.String[] tokens, java.util.Map criteria)` Same as `listTokenValues(String, Map)` but more generic.
`java.lang.String[]` `listTokenValues(java.lang.String token, java.util.Map otherTokenValues)` List all the values the given token can take if other tokens are set as described in the otherTokenValues map.
`ArtifactOrigin` `locate(Artifact artifact)` Locates the given artifact and returns its location if it can be located by this resolver and if it actually exists, or `null` in other cases.
`void` `publish(Artifact artifact, java.io.File src, boolean overwrite)`
`void` `reportFailure()` Reports last resolve failure as Messages
`void` `reportFailure(Artifact art)` Reports last artifact download failure as Messages
`void` `setName(java.lang.String name)` Should only be used by configurator
`void` `setSettings(ResolverSettings settings)`

### Method Detail

#### getName

    java.lang.String getName()

#### setName

    void setName(java.lang.String name)

Should only be used by configurator

Parameters:
  `name` - the new name of the resolver

#### getDependency

    ResolvedModuleRevision getDependency(DependencyDescriptor dd,
                                       ResolveData data)
                                         throws java.text.ParseException

Resolve a module by id, getting its module descriptor and resolving the revision if it's a latest one (i.e. a revision uniquely identifying the revision of a module in the current environment - If this revision is not able to identify uniquely the revision of the module outside of the current environment, then the resolved revision must begin by ##)

Throws:
  `java.text.ParseException`

#### findIvyFileRef

    ResolvedResource findIvyFileRef(DependencyDescriptor dd,
                                  ResolveData data)

Finds the module descriptor for the specified `DependencyDescriptor`. If this resolver can't find the module descriptor, `null` is returned.

Parameters:
  `dd` - the dependency descriptor
  `data` - the resolve data
Returns:
  the module descriptor, or `null`

#### download

    DownloadReport download(Artifact[] artifacts,
                          DownloadOptions options)

Download artifacts with specified DownloadOptions.

The resolver will always make a best effort, and do not stop when an artifact is not available. It rather continue to attempt to download other requested artifacts, and report what has been done in the returned DownloadReport.

The returned DownloadReport is never `null`, and always contain an `ArtifactDownloadReport` for each requested Artifact.

Parameters:
  `artifacts` - an array of artifacts to download. Must not be `null`.
  `options` - options to apply for this download. Must not be `null`.
Returns:
  a DownloadReport with details about each Artifact download.

#### download

    ArtifactDownloadReport download(ArtifactOrigin artifact,
                                  DownloadOptions options)

Download an artifact according to the given DownloadOptions.

This methods is an alternative to `download(Artifact[], DownloadOptions)`, which locates and downloads a set of artifacts. This method uses an `ArtifactOrigin`, and as such is only used to materialize an already located Artifact.

Parameters:
  `artifact` - the location of the artifact to download. Must not be `null`.
  `options` - options to apply for this download. Must not be `null`.
Returns:
  a report detailing how the download has gone, is never `null`.

#### exists

    boolean exists(Artifact artifact)

Returns `true` if the given artifact can be located by this resolver and actually exist.

Parameters:
  `artifact` - the artifact which should be tested.
Returns:
  `true` if the given artifact can be located by this resolver and actually exist.

#### locate

    ArtifactOrigin locate(Artifact artifact)

Locates the given artifact and returns its location if it can be located by this resolver and if it actually exists, or `null` in other cases.

Parameters:
  `artifact` - the artifact which should be located
Returns:
  the artifact location, or `null` if it can't be located by this resolver or doesn't exist.

#### publish

    void publish(Artifact artifact,
               java.io.File src,
               boolean overwrite)
                 throws java.io.IOException

Throws:
  `java.io.IOException`

#### beginPublishTransaction

    void beginPublishTransaction(ModuleRevisionId module,
                               boolean overwrite)
                                 throws java.io.IOException

Throws:
  `java.io.IOException`

#### abortPublishTransaction

    void abortPublishTransaction()
                                 throws java.io.IOException

Throws:
  `java.io.IOException`

#### commitPublishTransaction

    void commitPublishTransaction()
                                  throws java.io.IOException

Throws:
  `java.io.IOException`

#### reportFailure

    void reportFailure()

Reports last resolve failure as Messages

#### reportFailure

    void reportFailure(Artifact art)

Reports last artifact download failure as Messages

Parameters:
  `art` -

#### listTokenValues

    java.lang.String[] listTokenValues(java.lang.String token,
                                     java.util.Map otherTokenValues)

List all the values the given token can take if other tokens are set as described in the otherTokenValues map. For instance, if token = "revision" and the map contains "organisation"->"foo" "module"->"bar" The results will be the list of revisions of the module bar from the org foo.

Note that listing does not take into account namespaces, and return raw information without any namespace transformation. The caller is responsible for calling namespace transformation with the Namespace returned by `getNamespace()`.

#### listTokenValues

    java.util.Map[] listTokenValues(java.lang.String[] tokens,
                                  java.util.Map criteria)

Same as `listTokenValues(String, Map)` but more generic.

Parameters:
  `tokens` - the tokens of the query
  `criteria` - the token which have values
Returns:
  the list of token values (Map<Strin, String>[]), must not be `null`

#### listOrganisations

    OrganisationEntry[] listOrganisations()

#### listModules

    ModuleEntry[] listModules(OrganisationEntry org)

#### listRevisions

    RevisionEntry[] listRevisions(ModuleEntry module)

#### getNamespace

    Namespace getNamespace()

Returns the namespace associated with this resolver.

Returns:
  the namespace associated with this resolver.

#### dumpSettings

    void dumpSettings()

#### setSettings

    void setSettings(ResolverSettings settings)

#### getRepositoryCacheManager

    RepositoryCacheManager getRepositoryCacheManager()

Returns the `RepositoryCacheManager` used to manage the repository cache associated with this dependency resolver.

Returns:
  the `RepositoryCacheManager` used to manage the repository cache associated with this dependency resolver.