public abstract static class ConflictResolver.OptionalitySelector extends Object
ConflictResolver
that determines the effective optional flag of a dependency from a
potentially conflicting set of derived optionalities. The optionality selector gets invoked after the
ConflictResolver.VersionSelector
has picked the winning node.
Note: Implementations must be stateless.
Constructor and Description |
---|
OptionalitySelector() |
Modifier and Type | Method and 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 by
ConflictResolver.ConflictContext.getWinner() . |
public OptionalitySelector()
public ConflictResolver.OptionalitySelector getInstance(DependencyNode root, DependencyGraphTransformationContext context) throws RepositoryException
ConflictResolver.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.root
- The root node of the (possibly cyclic!) graph to transform, must not be null
.context
- The graph transformation context, must not be null
.null
.RepositoryException
- If the instance could not be retrieved.public abstract void selectOptionality(ConflictResolver.ConflictContext context) throws RepositoryException
ConflictResolver.ConflictContext.getWinner()
.
Implementations will usually iterate ConflictResolver.ConflictContext.getItems()
, inspect
ConflictResolver.ConflictItem.getOptionalities()
and eventually call ConflictResolver.ConflictContext.setOptional(Boolean)
to
deliver the effective optional flag.context
- The conflict context, must not be null
.RepositoryException
- If the optionality selection failed.Copyright © 2010–2021 The Apache Software Foundation. All rights reserved.