1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.repository.metadata;
20
21 import org.apache.maven.artifact.ArtifactScopeEnum;
22
23
24
25
26
27 @Deprecated
28 public class MetadataGraphVertex implements Comparable<MetadataGraphVertex> {
29 ArtifactMetadata md;
30
31
32 private boolean compareVersion = false;
33 private boolean compareScope = false;
34
35 public MetadataGraphVertex(ArtifactMetadata md) {
36 super();
37 this.md = md;
38 }
39
40 public MetadataGraphVertex(ArtifactMetadata md, boolean compareVersion, boolean compareScope) {
41 this(md);
42 this.compareVersion = compareVersion;
43 this.compareScope = compareScope;
44 }
45
46 public ArtifactMetadata getMd() {
47 return md;
48 }
49
50 public void setMd(ArtifactMetadata md) {
51 this.md = md;
52 }
53
54
55 public boolean isCompareVersion() {
56 return compareVersion;
57 }
58
59 public void setCompareVersion(boolean compareVersion) {
60 this.compareVersion = compareVersion;
61 }
62
63 public boolean isCompareScope() {
64 return compareScope;
65 }
66
67 public void setCompareScope(boolean compareScope) {
68 this.compareScope = compareScope;
69 }
70
71
72 @Override
73 public String toString() {
74 return "[" + (md == null ? "no metadata" : md.toString()) + "]";
75 }
76
77
78 private static int compareStrings(String s1, String s2) {
79 if (s1 == null && s2 == null) {
80 return 0;
81 }
82
83 if (s1 == null ) {
84 return -1;
85 }
86
87 if (
88 s2 == null) {
89 return 1;
90 }
91
92 return s1.compareTo(s2);
93 }
94
95
96 @Override
97 public int compareTo(MetadataGraphVertex vertex) {
98 if (vertex == null || vertex.getMd() == null) {
99 return 1;
100 }
101
102 ArtifactMetadata vmd = vertex.getMd();
103
104 if (vmd == null) {
105 if (md == null) {
106 return 0;
107 } else {
108 return 1;
109 }
110 }
111
112 int g = compareStrings(md.groupId, vmd.groupId);
113
114 if (g == 0) {
115 int a = compareStrings(md.artifactId, vmd.artifactId);
116 if (a == 0) {
117 if (compareVersion) {
118 int v = compareStrings(md.version, vmd.version);
119 if (v == 0) {
120 if (compareScope) {
121 String s1 = ArtifactScopeEnum.checkScope(md.artifactScope)
122 .getScope();
123 String s2 = ArtifactScopeEnum.checkScope(vmd.artifactScope)
124 .getScope();
125 return s1.compareTo(s2);
126 } else {
127 return 0;
128 }
129 } else {
130 return v;
131 }
132 } else {
133 return 0;
134 }
135 } else {
136 return a;
137 }
138 }
139
140 return g;
141 }
142
143
144 @Override
145 public boolean equals(Object vo) {
146 if (vo instanceof MetadataGraphVertex metadataGraphVertex) {
147 return compareTo(metadataGraphVertex) == 0;
148 }
149 return false;
150 }
151
152
153
154 @Override
155 public int hashCode() {
156 if (md == null) {
157 return super.hashCode();
158 }
159 StringBuilder hashString = new StringBuilder(128);
160 hashString.append(md.groupId).append('|');
161 hashString.append(md.artifactId).append('|');
162
163 if (compareVersion) {
164 hashString.append(md.version).append('|');
165 }
166
167 if (compareScope) {
168 hashString.append(md.getArtifactScope()).append('|');
169 }
170
171 return hashString.toString().hashCode();
172 }
173 }