1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.internal.impl;
20
21 import java.util.Objects;
22
23 import org.apache.maven.api.Artifact;
24 import org.apache.maven.api.Dependency;
25 import org.apache.maven.api.DependencyCoordinates;
26 import org.apache.maven.api.Version;
27 import org.apache.maven.api.annotations.Nonnull;
28
29 public class DefaultDependency extends AetherDependencyWrapper implements Dependency {
30
31 private final String key;
32
33 public DefaultDependency(
34 @Nonnull InternalSession session, @Nonnull org.eclipse.aether.graph.Dependency dependency) {
35 super(session, dependency);
36 this.key = getGroupId()
37 + ':'
38 + getArtifactId()
39 + ':'
40 + getExtension()
41 + (!getClassifier().isEmpty() ? ":" + getClassifier() : "")
42 + ':'
43 + getVersion();
44 }
45
46 @Override
47 public String key() {
48 return key;
49 }
50
51 @Override
52 public Version getVersion() {
53 return session.parseVersion(dependency.getArtifact().getVersion());
54 }
55
56 @Override
57 public Version getBaseVersion() {
58 return session.parseVersion(dependency.getArtifact().getBaseVersion());
59 }
60
61 @Override
62 public boolean isSnapshot() {
63 return DefaultModelVersionParser.checkSnapshot(dependency.getArtifact().getVersion());
64 }
65
66 @Override
67 public boolean isOptional() {
68 return dependency.isOptional();
69 }
70
71 @Nonnull
72 @Override
73 public DependencyCoordinates toCoordinates() {
74 return session.createDependencyCoordinates(this);
75 }
76
77 @Override
78 public boolean equals(Object o) {
79 return o instanceof Artifact && Objects.equals(key(), ((Artifact) o).key());
80 }
81
82 @Override
83 public int hashCode() {
84 return key.hashCode();
85 }
86 }