DependencyDescriptor
Date: 2014-12-13

org.apache.ivy.core.module.descriptor

## Interface DependencyDescriptor

- All Superinterfaces:
    ExtendableItem, InheritableItem
  All Known Implementing Classes:
    DefaultDependencyDescriptor, PomModuleDescriptorBuilder.PomDependencyDescriptor

      public interface DependencyDescriptor
      extends ExtendableItem, InheritableItem

  Describes a dependency from a depender to a dependee.

  The main information this descriptor contains is the constraint on the dependency. There is actually two kind of dependency constraints: the default dependency constraint, which can be obtained with `getDependencyRevisionId()`, and corresponds to the `rev` attribute in Ivy files. This is the constraint as it should be honored by Ivy in default resolve mode.

  Then there is the dynamic constraint, which can either be the same as the default constraint, or the original dependency constraint when an Ivy file is delivered an published to a repository. This dynamic constraint is returned by `getDynamicConstraintDependencyRevisionId()`, and corresponds to the `revconstraint` attribute in the Ivy file. In some resolve mode, this constraint can be used instead of the default dependency constraint when performing dependency resolution.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `DependencyDescriptor` | `asSystem()`
    `boolean` | `canExclude()` Returns true if this descriptor contains any exclusion rule
    `DependencyDescriptor` | `clone(ModuleRevisionId revision)` Clones current dependency descriptor with another revision.
    `boolean` | `doesExclude(java.lang.String[] moduleConfigurations, ArtifactId artifactId)` Returns true if
    `DependencyArtifactDescriptor[]` | `getAllDependencyArtifacts()`
    `ExcludeRule[]` | `getAllExcludeRules()`
    `IncludeRule[]` | `getAllIncludeRules()`
    `DependencyArtifactDescriptor[]` | `getDependencyArtifacts(java.lang.String moduleConfigurations)`
    `DependencyArtifactDescriptor[]` | `getDependencyArtifacts(java.lang.String[] moduleConfigurations)`
    `java.lang.String[]` | `getDependencyConfigurations(java.lang.String moduleConfiguration)`
    `java.lang.String[]` | `getDependencyConfigurations(java.lang.String[] moduleConfigurations)`
    `java.lang.String[]` | `getDependencyConfigurations(java.lang.String moduleConfiguration, java.lang.String requestedConfiguration)`
    `ModuleId` | `getDependencyId()`
    `ModuleRevisionId` | `getDependencyRevisionId()` Returns the constraint on dependency this descriptor represents.
    `ModuleRevisionId` | `getDynamicConstraintDependencyRevisionId()` Returns the dynamic constraint on dependency this descriptor represents.
    `ExcludeRule[]` | `getExcludeRules(java.lang.String moduleConfigurations)`
    `ExcludeRule[]` | `getExcludeRules(java.lang.String[] moduleConfigurations)`
    `IncludeRule[]` | `getIncludeRules(java.lang.String moduleConfigurations)`
    `IncludeRule[]` | `getIncludeRules(java.lang.String[] moduleConfigurations)`
    `java.lang.String[]` | `getModuleConfigurations()`
    `Namespace` | `getNamespace()`
    `ModuleRevisionId` | `getParentRevisionId()`
    `boolean` | `isChanging()` Used to indicate that this dependency is a changing one.
    `boolean` | `isForce()` Used to indicate that this revision must be used in case of conflicts, independently of conflicts manager.
    `boolean` | `isTransitive()`

    - ### Methods inherited from interface org.apache.ivy.util.extendable.ExtendableItem

      `getAttribute, getAttributes, getExtraAttribute, getExtraAttributes, getQualifiedExtraAttributes`

    - ### Methods inherited from interface org.apache.ivy.core.module.descriptor.InheritableItem

      `getSourceModule`

- - ### Method Detail

    - #### getDependencyId

          ModuleId getDependencyId()

    - #### isForce

          boolean isForce()

      Used to indicate that this revision must be used in case of conflicts, independently of conflicts manager. This only works for direct dependencies, and not transitive ones.
      Returns:
        true if this dependency should be used, false if conflicts manager can do its work.

    - #### isChanging

          boolean isChanging()

      Used to indicate that this dependency is a changing one. A changing dependency in ivy means that the revision may have its artifacts modified without revision change. When new artifacts are published a new ivy file should also be published with a new publication date to indicate to ivy that artifacts have changed and that they should be downloaded again.
      Returns:
        true if this dependency is a changing one

    - #### isTransitive

          boolean isTransitive()

    - #### getParentRevisionId

          ModuleRevisionId getParentRevisionId()

    - #### getDependencyRevisionId

          ModuleRevisionId getDependencyRevisionId()

      Returns the constraint on dependency this descriptor represents.
      Returns:
        the constraint on dependency.

    - #### getDynamicConstraintDependencyRevisionId

          ModuleRevisionId getDynamicConstraintDependencyRevisionId()

      Returns the dynamic constraint on dependency this descriptor represents.
      Returns:
        the dynamic constraint on dependency, or exact constraint if no dynamic constraint is specified.

    - #### getModuleConfigurations

          java.lang.String[] getModuleConfigurations()

    - #### getDependencyConfigurations

          java.lang.String[] getDependencyConfigurations(java.lang.String moduleConfiguration,
                                                       java.lang.String requestedConfiguration)

    - #### getDependencyConfigurations

          java.lang.String[] getDependencyConfigurations(java.lang.String moduleConfiguration)

    - #### getDependencyConfigurations

          java.lang.String[] getDependencyConfigurations(java.lang.String[] moduleConfigurations)

    - #### getNamespace

          Namespace getNamespace()

    - #### getAllDependencyArtifacts

          DependencyArtifactDescriptor[] getAllDependencyArtifacts()

    - #### getDependencyArtifacts

          DependencyArtifactDescriptor[] getDependencyArtifacts(java.lang.String moduleConfigurations)

    - #### getDependencyArtifacts

          DependencyArtifactDescriptor[] getDependencyArtifacts(java.lang.String[] moduleConfigurations)

    - #### getAllIncludeRules

          IncludeRule[] getAllIncludeRules()

    - #### getIncludeRules

          IncludeRule[] getIncludeRules(java.lang.String moduleConfigurations)

    - #### getIncludeRules

          IncludeRule[] getIncludeRules(java.lang.String[] moduleConfigurations)

    - #### getAllExcludeRules

          ExcludeRule[] getAllExcludeRules()

    - #### getExcludeRules

          ExcludeRule[] getExcludeRules(java.lang.String moduleConfigurations)

    - #### getExcludeRules

          ExcludeRule[] getExcludeRules(java.lang.String[] moduleConfigurations)

    - #### doesExclude

          boolean doesExclude(java.lang.String[] moduleConfigurations,
                            ArtifactId artifactId)

      Returns true if
      Parameters:
        `moduleConfigurations` -
        `artifactId` -
      Returns:

    - #### canExclude

          boolean canExclude()

      Returns true if this descriptor contains any exclusion rule
      Returns:
        true if this descriptor contains any exclusion rule

    - #### asSystem

          DependencyDescriptor asSystem()

    - #### clone

          DependencyDescriptor clone(ModuleRevisionId revision)

      Clones current dependency descriptor with another revision.
      Parameters:
        `revision` - the revision of the cloned dependency descriptor
      Returns:
        the cloned dependency descriptor
      Throws:
        `java.lang.IllegalArgumentException` - if the given `ModuleRevisionId` has not the same `ModuleId` as the `ModuleRevisionId` of this descriptor.