## 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
`SortEngine(SortEngineSettings settings)`

Method Summary
`protected CircularDependencyStrategy` `getCircularStrategy()`
`protected VersionMatcher` `getVersionMatcher()`
`java.util.List` `sortModuleDescriptors(java.util.Collection moduleDescriptors, SortOptions options)` Sorts the given ModuleDescriptors from the less dependent to the more dependent.
`java.util.List` `sortNodes(java.util.Collection 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 sortNodes(java.util.Collection 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 sortModuleDescriptors(java.util.Collection 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()