Package org.eclipse.aether.graph
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.
-
-
Field Summary
-
Fields inherited from interface org.eclipse.aether.graph.DependencyNode
MANAGED_EXCLUSIONS, MANAGED_OPTIONAL, MANAGED_PROPERTIES, MANAGED_SCOPE, MANAGED_VERSION
-
-
Constructor Summary
Constructors Constructor Description DefaultDependencyNode(Artifact artifact)
Creates a new root node with the specified artifact as its label.DefaultDependencyNode(Dependency dependency)
Creates a new node with the specified dependency.DefaultDependencyNode(DependencyNode node)
Creates a mostly shallow clone of the specified node.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
accept(DependencyVisitor visitor)
Traverses this node and potentially its children using the specified visitor.Collection<? extends Artifact>
getAliases()
Gets the known aliases for this dependency's artifact.Artifact
getArtifact()
Gets the artifact associated with this node.List<DependencyNode>
getChildren()
Gets the child nodes of this node.Map<Object,Object>
getData()
Gets the custom data associated with this dependency node.Dependency
getDependency()
Gets the dependency associated with this node.int
getManagedBits()
Gets a bit field indicating which attributes of this node were subject to dependency management.List<? extends Artifact>
getRelocations()
Gets the sequence of relocations that was followed to resolve the artifact referenced by the dependency.List<RemoteRepository>
getRepositories()
Gets the remote repositories from which this node's artifact shall be resolved.String
getRequestContext()
Gets the request context in which this dependency node was created.Version
getVersion()
Gets the version that was selected for the dependency's target artifact.VersionConstraint
getVersionConstraint()
Gets the version constraint that was parsed from the dependency's version declaration.void
setAliases(Collection<? extends Artifact> aliases)
Sets the known aliases for this dependency's artifact.void
setArtifact(Artifact artifact)
Updates the artifact of the dependency after resolution.void
setChildren(List<DependencyNode> children)
Sets the child nodes of this node.void
setData(Object key, Object value)
Associates the specified dependency node data with the given key.void
setData(Map<Object,Object> data)
Sets the custom data associated with this dependency node.void
setManagedBits(int managedBits)
Sets a bit field indicating which attributes of this node were subject to dependency management.void
setOptional(Boolean optional)
Sets the optional flag of the dependency.void
setRelocations(List<? extends Artifact> relocations)
Sets the sequence of relocations that was followed to resolve this dependency's artifact.void
setRepositories(List<RemoteRepository> repositories)
Sets the remote repositories from which this node's artifact shall be resolved.void
setRequestContext(String context)
Sets the request context in which this dependency node was created.void
setScope(String scope)
Sets the scope of the dependency.void
setVersion(Version version)
Sets the version that was selected for the dependency's target artifact.void
setVersionConstraint(VersionConstraint versionConstraint)
Sets the version constraint that was parsed from the dependency's version declaration.String
toString()
-
-
-
Constructor Detail
-
DefaultDependencyNode
public DefaultDependencyNode(Dependency dependency)
Creates a new node with the specified dependency.- Parameters:
dependency
- The dependency associated with this node, may benull
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 returnnull
. 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 benull
.
-
DefaultDependencyNode
public DefaultDependencyNode(DependencyNode node)
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 benull
.
-
-
Method Detail
-
getChildren
public List<DependencyNode> 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 interfaceDependencyNode
- 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 interfaceDependencyNode
- Parameters:
children
- The child nodes, may benull
-
getDependency
public Dependency 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 yieldnull
when invoked on the graph's root node. The root node of such graphs may however still have a label as returned byDependencyNode.getArtifact()
.- Specified by:
getDependency
in interfaceDependencyNode
- Returns:
- The dependency or
null
if none.
-
getArtifact
public Artifact getArtifact()
Description copied from interface:DependencyNode
Gets the artifact associated with this node. If this node is associated with a dependency, this is equivalent togetDependency().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 interfaceDependencyNode
- 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. ifDependencyNode.getDependency()
is not null.- Specified by:
setArtifact
in interfaceDependencyNode
- Parameters:
artifact
- The artifact satisfying the dependency, must not benull
.
-
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 interfaceDependencyNode
- 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 benull
.
-
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 interfaceDependencyNode
- 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 benull
.
-
getVersionConstraint
public VersionConstraint getVersionConstraint()
Description copied from interface:DependencyNode
Gets the version constraint that was parsed from the dependency's version declaration.- Specified by:
getVersionConstraint
in interfaceDependencyNode
- 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 benull
.
-
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 interfaceDependencyNode
- 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 benull
.
-
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. ifDependencyNode.getDependency()
is not null.- Specified by:
setScope
in interfaceDependencyNode
- Parameters:
scope
- The scope, may benull
.
-
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. ifDependencyNode.getDependency()
is not null.- Specified by:
setOptional
in interfaceDependencyNode
- Parameters:
optional
- The optional flag, may benull
.
-
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 interfaceDependencyNode
- Returns:
- A bit field containing any of the bits
DependencyNode.MANAGED_VERSION
,DependencyNode.MANAGED_SCOPE
,DependencyNode.MANAGED_OPTIONAL
,DependencyNode.MANAGED_PROPERTIES
andDependencyNode.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 or0
if dependency management wasn't applied.
-
getRepositories
public List<RemoteRepository> getRepositories()
Description copied from interface:DependencyNode
Gets the remote repositories from which this node's artifact shall be resolved.- Specified by:
getRepositories
in interfaceDependencyNode
- 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 benull
.
-
getRequestContext
public String getRequestContext()
Description copied from interface:DependencyNode
Gets the request context in which this dependency node was created.- Specified by:
getRequestContext
in interfaceDependencyNode
- 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 interfaceDependencyNode
- Parameters:
context
- The context, may benull
.
-
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 andDependencyNode.setData(Object, Object)
needs to be used to update the custom data.- Specified by:
getData
in interfaceDependencyNode
- 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 interfaceDependencyNode
- Parameters:
data
- The new custom data, may benull
.
-
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 whileDependencyNode.getData()
is being iterated.- Specified by:
setData
in interfaceDependencyNode
- Parameters:
key
- The key under which to store the data, must not benull
.value
- The data to associate with the key, may benull
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 interfaceDependencyNode
- Parameters:
visitor
- The visitor to call back, must not benull
.- Returns:
true
to visit siblings nodes of this node as well,false
to skip siblings.
-
-