]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.api/src/org/argeo/slc/DefaultNameVersion.java
Upgrade all classpaths to Java 11
[gpl/argeo-slc.git] / org.argeo.slc.api / src / org / argeo / slc / DefaultNameVersion.java
1 package org.argeo.slc;
2
3
4 /** Canonical implementation of {@link NameVersion} */
5 public class DefaultNameVersion implements NameVersion,
6 Comparable<NameVersion> {
7 private String name;
8 private String version;
9
10 public DefaultNameVersion() {
11 }
12
13 /** Interprets string in OSGi-like format my.module.name;version=0.0.0 */
14 public DefaultNameVersion(String nameVersion) {
15 int index = nameVersion.indexOf(";version=");
16 if (index < 0) {
17 setName(nameVersion);
18 setVersion(null);
19 } else {
20 setName(nameVersion.substring(0, index));
21 setVersion(nameVersion.substring(index + ";version=".length()));
22 }
23 }
24
25 public DefaultNameVersion(String name, String version) {
26 this.name = name;
27 this.version = version;
28 }
29
30 public DefaultNameVersion(NameVersion nameVersion) {
31 this.name = nameVersion.getName();
32 this.version = nameVersion.getVersion();
33 }
34
35 public String getName() {
36 return name;
37 }
38
39 public void setName(String name) {
40 this.name = name;
41 }
42
43 public String getVersion() {
44 return version;
45 }
46
47 public void setVersion(String version) {
48 this.version = version;
49 }
50
51 @Override
52 public boolean equals(Object obj) {
53 if (obj instanceof NameVersion) {
54 NameVersion nameVersion = (NameVersion) obj;
55 return name.equals(nameVersion.getName())
56 && version.equals(nameVersion.getVersion());
57 } else
58 return false;
59 }
60
61 @Override
62 public int hashCode() {
63 return name.hashCode();
64 }
65
66 @Override
67 public String toString() {
68 return name + ":" + version;
69 }
70
71 public int compareTo(NameVersion o) {
72 if (o.getName().equals(name))
73 return version.compareTo(o.getVersion());
74 else
75 return name.compareTo(o.getName());
76 }
77 }