Class ConflictResolver.ConflictItem

  • Enclosing class:
    ConflictResolver

    public static final class ConflictResolver.ConflictItem
    extends Object
    A conflicting dependency.
    Restriction:
    This class is not intended to be instantiated by clients in production code, the constructor may change without notice and only exists to enable unit testing.
    • Constructor Detail

      • ConflictItem

        public ConflictItem​(DependencyNode parent,
                            DependencyNode node,
                            int depth,
                            int optionalities,
                            String... scopes)
        Creates a new conflict item with the specified properties.
        Parameters:
        parent - The parent node of the conflicting dependency, may be null.
        node - The conflicting dependency, must not be null.
        depth - The zero-based depth of the conflicting dependency.
        optionalities - The optionalities the dependency was encountered with, encoded as a bit field consisting of OPTIONAL_TRUE and OPTIONAL_FALSE.
        scopes - The derived scopes of the conflicting dependency, must not be null.
        Restriction:
        This class is not intended to be instantiated by clients in production code, the constructor may change without notice and only exists to enable unit testing.
    • Method Detail

      • isSibling

        public boolean isSibling​(ConflictResolver.ConflictItem item)
        Determines whether the specified conflict item is a sibling of this item.
        Parameters:
        item - The other conflict item, must not be null.
        Returns:
        true if the given item has the same parent as this item, false otherwise.
      • getNode

        public DependencyNode getNode()
        Gets the dependency node involved in the conflict.
        Returns:
        The involved dependency node, never null.
      • getDependency

        public Dependency getDependency()
        Gets the dependency involved in the conflict, short for getNode.getDependency().
        Returns:
        The involved dependency, never null.
      • getDepth

        public int getDepth()
        Gets the zero-based depth at which the conflicting node occurs in the graph. As such, the depth denotes the number of parent nodes. If actually multiple paths lead to the node, the return value denotes the smallest possible depth.
        Returns:
        The zero-based depth of the node in the graph.
      • getScopes

        public Collection<StringgetScopes()
        Gets the derived scopes of the dependency. In general, the same dependency node could be reached via different paths and each path might result in a different derived scope.
        Returns:
        The (read-only) set of derived scopes of the dependency, never null.
        See Also:
        ConflictResolver.ScopeDeriver
      • getOptionalities

        public int getOptionalities()
        Gets the derived optionalities of the dependency. In general, the same dependency node could be reached via different paths and each path might result in a different derived optionality.
        Returns:
        A bit field consisting of OPTIONAL_FALSE and/or OPTIONAL_TRUE indicating the derived optionalities the dependency was encountered with.