SortEngine
Date: 2014-12-13

org.apache.ivy.core.sort

## Class SortEngine

- java.lang.Object
- - org.apache.ivy.core.sort.SortEngine

-     public class SortEngine
      extends java.lang.Object

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SortEngine(SortEngineSettings settings)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected CircularDependencyStrategy` | `getCircularStrategy()`
    `protected VersionMatcher` | `getVersionMatcher()`
    `java.util.List<ModuleDescriptor>` | `sortModuleDescriptors(java.util.Collection<ModuleDescriptor> moduleDescriptors, SortOptions options)` Sorts the given ModuleDescriptors from the less dependent to the more dependent.
    `java.util.List<IvyNode>` | `sortNodes(java.util.Collection<IvyNode> nodes, SortOptions options)` Same as `sortModuleDescriptors(Collection, SortOptions)` but for `IvyNode` s.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SortEngine

          public SortEngine(SortEngineSettings settings)

  - ### Method Detail

    - #### sortNodes

          public java.util.List<IvyNode> sortNodes(java.util.Collection<IvyNode> nodes,
                                          SortOptions options)

      Same as `sortModuleDescriptors(Collection, SortOptions)` but for `IvyNode` s.
      Parameters:
        `nodes` - a Collection of nodes to sort
        `options` - Options to use to sort the nodes.
      Returns:
        a List of sorted IvyNode
      Throws:
        `CircularDependencyException` - if a circular dependency exists and circular dependency strategy decide to throw an exception

    - #### sortModuleDescriptors

          public java.util.List<ModuleDescriptor> sortModuleDescriptors(java.util.Collection<ModuleDescriptor> moduleDescriptors,
                                                               SortOptions options)
                                                                 throws CircularDependencyException

      Sorts the given ModuleDescriptors from the less dependent to the more dependent. This sort ensures that a ModuleDescriptor is always found in the list before all ModuleDescriptors depending directly on it.
      Parameters:
        `moduleDescriptors` - a Collection of ModuleDescriptor to sort
        `options` - Options to use to sort the descriptors.
      Returns:
        a List of sorted ModuleDescriptors
      Throws:
        `CircularDependencyException` - if a circular dependency exists and circular dependency strategy decide to throw an exception

    - #### getCircularStrategy

          protected CircularDependencyStrategy getCircularStrategy()

    - #### getVersionMatcher

          protected VersionMatcher getVersionMatcher()