Class Dependency


  • public final class Dependency
    extends java.lang.Object
    A dependency to some artifact. Note: Instances of this class are immutable and the exposed mutators return new objects rather than changing the current instance.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  Dependency.Exclusions  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        Dependency​(Artifact artifact, java.lang.String scope)
      Creates a mandatory dependency on the specified artifact with the given scope.
        Dependency​(Artifact artifact, java.lang.String scope, java.lang.Boolean optional)
      Creates a dependency on the specified artifact with the given scope.
        Dependency​(Artifact artifact, java.lang.String scope, java.lang.Boolean optional, java.util.Collection<Exclusion> exclusions)
      Creates a dependency on the specified artifact with the given scope and exclusions.
      private Dependency​(Artifact artifact, java.lang.String scope, java.util.Set<Exclusion> exclusions, java.lang.Boolean optional)  
    • Field Detail

      • artifact

        private final Artifact artifact
      • scope

        private final java.lang.String scope
      • optional

        private final java.lang.Boolean optional
      • exclusions

        private final java.util.Set<Exclusion> exclusions
    • Constructor Detail

      • Dependency

        public Dependency​(Artifact artifact,
                          java.lang.String scope)
        Creates a mandatory dependency on the specified artifact with the given scope.
        Parameters:
        artifact - The artifact being depended on, must not be null.
        scope - The scope of the dependency, may be null.
      • Dependency

        public Dependency​(Artifact artifact,
                          java.lang.String scope,
                          java.lang.Boolean optional)
        Creates a dependency on the specified artifact with the given scope.
        Parameters:
        artifact - The artifact being depended on, must not be null.
        scope - The scope of the dependency, may be null.
        optional - A flag whether the dependency is optional or mandatory, may be null.
      • Dependency

        public Dependency​(Artifact artifact,
                          java.lang.String scope,
                          java.lang.Boolean optional,
                          java.util.Collection<Exclusion> exclusions)
        Creates a dependency on the specified artifact with the given scope and exclusions.
        Parameters:
        artifact - The artifact being depended on, must not be null.
        scope - The scope of the dependency, may be null.
        optional - A flag whether the dependency is optional or mandatory, may be null.
        exclusions - The exclusions that apply to transitive dependencies, may be null if none.
      • Dependency

        private Dependency​(Artifact artifact,
                           java.lang.String scope,
                           java.util.Set<Exclusion> exclusions,
                           java.lang.Boolean optional)
    • Method Detail

      • getArtifact

        public Artifact getArtifact()
        Gets the artifact being depended on.
        Returns:
        The artifact, never null.
      • setArtifact

        public Dependency setArtifact​(Artifact artifact)
        Sets the artifact being depended on.
        Parameters:
        artifact - The artifact, must not be null.
        Returns:
        The new dependency, never null.
      • getScope

        public java.lang.String getScope()
        Gets the scope of the dependency. The scope defines in which context this dependency is relevant.
        Returns:
        The scope or an empty string if not set, never null.
      • setScope

        public Dependency setScope​(java.lang.String scope)
        Sets the scope of the dependency, e.g. "compile".
        Parameters:
        scope - The scope of the dependency, may be null.
        Returns:
        The new dependency, never null.
      • isOptional

        public boolean isOptional()
        Indicates whether this dependency is optional or not. Optional dependencies can be ignored in some contexts.
        Returns:
        true if the dependency is (definitively) optional, false otherwise.
      • getOptional

        public java.lang.Boolean getOptional()
        Gets the optional flag for the dependency. Note: Most clients will usually call isOptional() to determine the optional flag, this method is for advanced use cases where three-valued logic is required.
        Returns:
        The optional flag or null if unspecified.
      • setOptional

        public Dependency setOptional​(java.lang.Boolean optional)
        Sets the optional flag for the dependency.
        Parameters:
        optional - true if the dependency is optional, false if the dependency is mandatory, may be null if unspecified.
        Returns:
        The new dependency, never null.
      • getExclusions

        public java.util.Collection<Exclusion> getExclusions()
        Gets the exclusions for this dependency. Exclusions can be used to remove transitive dependencies during resolution.
        Returns:
        The (read-only) exclusions, never null.
      • setExclusions

        public Dependency setExclusions​(java.util.Collection<Exclusion> exclusions)
        Sets the exclusions for the dependency.
        Parameters:
        exclusions - The exclusions, may be null.
        Returns:
        The new dependency, never null.
      • hasEquivalentExclusions

        private boolean hasEquivalentExclusions​(java.util.Collection<Exclusion> exclusions)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object