Class DefaultDependencyNode

java.lang.Object
org.eclipse.aether.graph.DefaultDependencyNode
All Implemented Interfaces:
DependencyNode

public final class DefaultDependencyNode extends Object implements DependencyNode
A node within a dependency graph.
  • Constructor Details

    • DefaultDependencyNode

      public DefaultDependencyNode(Dependency dependency)
      Creates a new node with the specified dependency.
      Parameters:
      dependency - The dependency associated with this node, may be null for a root node.
    • DefaultDependencyNode

      public DefaultDependencyNode(Artifact artifact)
      Creates a new root node with the specified artifact as its label. Note that the new node has no dependency, i.e. getDependency() will return null. Put differently, the specified artifact will not be subject to dependency collection/resolution.
      Parameters:
      artifact - The artifact to use as label for this node, may be null.
    • DefaultDependencyNode

      Creates a mostly shallow clone of the specified node. The new node has its own copy of any custom data and initially no children.
      Parameters:
      node - The node to copy, must not be null.
  • Method Details

    • getChildren

      Description copied from interface: DependencyNode
      Gets the child nodes of this node. To conserve memory, dependency nodes with equal dependencies may share the same child list instance. Hence clients mutating the child list need to be aware that these changes might affect more than this node. Where this is not desired, the child list should be copied before mutation if the client cannot be sure whether it might be shared with other nodes in the graph.
      Specified by:
      getChildren in interface DependencyNode
      Returns:
      The child nodes of this node, never null.
    • setChildren

      public void setChildren(List<DependencyNode> children)
      Description copied from interface: DependencyNode
      Sets the child nodes of this node.
      Specified by:
      setChildren in interface DependencyNode
      Parameters:
      children - The child nodes, may be null
    • getDependency

      Description copied from interface: DependencyNode
      Gets the dependency associated with this node. Note: For dependency graphs that have been constructed without a root dependency, this method will yield null when invoked on the graph's root node. The root node of such graphs may however still have a label as returned by DependencyNode.getArtifact().
      Specified by:
      getDependency in interface DependencyNode
      Returns:
      The dependency or null if none.
    • getArtifact

      Description copied from interface: DependencyNode
      Gets the artifact associated with this node. If this node is associated with a dependency, this is equivalent to getDependency().getArtifact(). Otherwise the artifact merely provides a label for this node in which case the artifact must not be subjected to dependency collection/resolution.
      Specified by:
      getArtifact in interface DependencyNode
      Returns:
      The associated artifact or null if none.
    • setArtifact

      public void setArtifact(Artifact artifact)
      Description copied from interface: DependencyNode
      Updates the artifact of the dependency after resolution. The new artifact must have the same coordinates as the original artifact. This method may only be invoked if this node actually has a dependency, i.e. if DependencyNode.getDependency() is not null.
      Specified by:
      setArtifact in interface DependencyNode
      Parameters:
      artifact - The artifact satisfying the dependency, must not be null.
    • getRelocations

      public List<? extends Artifact> getRelocations()
      Description copied from interface: DependencyNode
      Gets the sequence of relocations that was followed to resolve the artifact referenced by the dependency.
      Specified by:
      getRelocations in interface DependencyNode
      Returns:
      The (read-only) sequence of relocations, never null.
    • setRelocations

      public void setRelocations(List<? extends Artifact> relocations)
      Sets the sequence of relocations that was followed to resolve this dependency's artifact.
      Parameters:
      relocations - The sequence of relocations, may be null.
    • getAliases

      public Collection<? extends Artifact> getAliases()
      Description copied from interface: DependencyNode
      Gets the known aliases for this dependency's artifact. An alias can be used to mark a patched rebuild of some other artifact as such, thereby allowing conflict resolution to consider the patched and the original artifact as a conflict.
      Specified by:
      getAliases in interface DependencyNode
      Returns:
      The (read-only) set of known aliases, never null.
    • setAliases

      public void setAliases(Collection<? extends Artifact> aliases)
      Sets the known aliases for this dependency's artifact.
      Parameters:
      aliases - The known aliases, may be null.
    • getVersionConstraint

      Description copied from interface: DependencyNode
      Gets the version constraint that was parsed from the dependency's version declaration.
      Specified by:
      getVersionConstraint in interface DependencyNode
      Returns:
      The version constraint for this node or null.
    • setVersionConstraint

      public void setVersionConstraint(VersionConstraint versionConstraint)
      Sets the version constraint that was parsed from the dependency's version declaration.
      Parameters:
      versionConstraint - The version constraint for this node, may be null.
    • getVersion

      public Version getVersion()
      Description copied from interface: DependencyNode
      Gets the version that was selected for the dependency's target artifact.
      Specified by:
      getVersion in interface DependencyNode
      Returns:
      The parsed version or null.
    • setVersion

      public void setVersion(Version version)
      Sets the version that was selected for the dependency's target artifact.
      Parameters:
      version - The parsed version, may be null.
    • setScope

      public void setScope(String scope)
      Description copied from interface: DependencyNode
      Sets the scope of the dependency. This method may only be invoked if this node actually has a dependency, i.e. if DependencyNode.getDependency() is not null.
      Specified by:
      setScope in interface DependencyNode
      Parameters:
      scope - The scope, may be null.
    • setOptional

      public void setOptional(Boolean optional)
      Description copied from interface: DependencyNode
      Sets the optional flag of the dependency. This method may only be invoked if this node actually has a dependency, i.e. if DependencyNode.getDependency() is not null.
      Specified by:
      setOptional in interface DependencyNode
      Parameters:
      optional - The optional flag, may be null.
    • getManagedBits

      public int getManagedBits()
      Description copied from interface: DependencyNode
      Gets a bit field indicating which attributes of this node were subject to dependency management.
      Specified by:
      getManagedBits in interface DependencyNode
      Returns:
      A bit field containing any of the bits DependencyNode.MANAGED_VERSION, DependencyNode.MANAGED_SCOPE, DependencyNode.MANAGED_OPTIONAL, DependencyNode.MANAGED_PROPERTIES and DependencyNode.MANAGED_EXCLUSIONS if the corresponding attribute was set via dependency management.
    • setManagedBits

      public void setManagedBits(int managedBits)
      Sets a bit field indicating which attributes of this node were subject to dependency management.
      Parameters:
      managedBits - The bit field indicating the managed attributes or 0 if dependency management wasn't applied.
    • getRepositories

      Description copied from interface: DependencyNode
      Gets the remote repositories from which this node's artifact shall be resolved.
      Specified by:
      getRepositories in interface DependencyNode
      Returns:
      The (read-only) list of remote repositories to use for artifact resolution, never null.
    • setRepositories

      public void setRepositories(List<RemoteRepository> repositories)
      Sets the remote repositories from which this node's artifact shall be resolved.
      Parameters:
      repositories - The remote repositories to use for artifact resolution, may be null.
    • getRequestContext

      Description copied from interface: DependencyNode
      Gets the request context in which this dependency node was created.
      Specified by:
      getRequestContext in interface DependencyNode
      Returns:
      The request context, never null.
    • setRequestContext

      public void setRequestContext(String context)
      Description copied from interface: DependencyNode
      Sets the request context in which this dependency node was created.
      Specified by:
      setRequestContext in interface DependencyNode
      Parameters:
      context - The context, may be null.
    • getData

      public Map<Object,Object> getData()
      Description copied from interface: DependencyNode
      Gets the custom data associated with this dependency node. Clients of the repository system can use this data to annotate dependency nodes with domain-specific information. Note that the returned map is read-only and DependencyNode.setData(Object, Object) needs to be used to update the custom data.
      Specified by:
      getData in interface DependencyNode
      Returns:
      The (read-only) key-value mappings, never null.
    • setData

      public void setData(Map<Object,Object> data)
      Description copied from interface: DependencyNode
      Sets the custom data associated with this dependency node.
      Specified by:
      setData in interface DependencyNode
      Parameters:
      data - The new custom data, may be null.
    • setData

      public void setData(Object key, Object value)
      Description copied from interface: DependencyNode
      Associates the specified dependency node data with the given key. Note: This method must not be called while DependencyNode.getData() is being iterated.
      Specified by:
      setData in interface DependencyNode
      Parameters:
      key - The key under which to store the data, must not be null.
      value - The data to associate with the key, may be null to remove the mapping.
    • accept

      public boolean accept(DependencyVisitor visitor)
      Description copied from interface: DependencyNode
      Traverses this node and potentially its children using the specified visitor.
      Specified by:
      accept in interface DependencyNode
      Parameters:
      visitor - The visitor to call back, must not be null.
      Returns:
      true to visit siblings nodes of this node as well, false to skip siblings.
    • toString

      public String toString()
      Overrides:
      toString in class Object