Class ConflictResolver.OptionalitySelector
- java.lang.Object
-
- org.eclipse.aether.util.graph.transformer.ConflictResolver.OptionalitySelector
-
- Direct Known Subclasses:
SimpleOptionalitySelector
- Enclosing class:
- ConflictResolver
public abstract static class ConflictResolver.OptionalitySelector extends Object
An extension point ofConflictResolver
that determines the effective optional flag of a dependency from a potentially conflicting set of derived optionalities. The optionality selector gets invoked after theConflictResolver.VersionSelector
has picked the winning node.Note: Implementations must be stateless.
-
-
Constructor Summary
Constructors Constructor Description OptionalitySelector()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description ConflictResolver.OptionalitySelector
getInstance(DependencyNode root, DependencyGraphTransformationContext context)
Retrieves the optionality selector for use during the specified graph transformation.abstract void
selectOptionality(ConflictResolver.ConflictContext context)
Determines the effective optional flag of the dependency given byConflictResolver.ConflictContext.getWinner()
.
-
-
-
Constructor Detail
-
OptionalitySelector
public OptionalitySelector()
-
-
Method Detail
-
getInstance
public ConflictResolver.OptionalitySelector getInstance(DependencyNode root, DependencyGraphTransformationContext context) throws RepositoryException
Retrieves the optionality selector for use during the specified graph transformation. The conflict resolver calls this method once perConflictResolver.transformGraph(DependencyNode, DependencyGraphTransformationContext)
invocation to allow implementations to prepare any auxiliary data that is needed for their operation. Given that implementations must be stateless, a new instance needs to be returned to hold such auxiliary data. The default implementation simply returns the current instance which is appropriate for implementations which do not require auxiliary data.- Parameters:
root
- The root node of the (possibly cyclic!) graph to transform, must not benull
.context
- The graph transformation context, must not benull
.- Returns:
- The optionality selector to use for the given graph transformation, never
null
. - Throws:
RepositoryException
- If the instance could not be retrieved.
-
selectOptionality
public abstract void selectOptionality(ConflictResolver.ConflictContext context) throws RepositoryException
Determines the effective optional flag of the dependency given byConflictResolver.ConflictContext.getWinner()
. Implementations will usually iterateConflictResolver.ConflictContext.getItems()
, inspectConflictResolver.ConflictItem.getOptionalities()
and eventually callConflictResolver.ConflictContext.setOptional(Boolean)
to deliver the effective optional flag.- Parameters:
context
- The conflict context, must not benull
.- Throws:
RepositoryException
- If the optionality selection failed.
-
-