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