X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.slc%2Fsrc%2Forg%2Fargeo%2Fapi%2Fslc%2FDefaultNameVersion.java;fp=org.argeo.api.slc%2Fsrc%2Forg%2Fargeo%2Fapi%2Fslc%2FDefaultNameVersion.java;h=7ae25cb514a833008b176171d63f20e309b582ad;hb=d07cf3c7dfdeafa2b1efafe547b54d56a8b52ced;hp=0000000000000000000000000000000000000000;hpb=8596685647867307b862b8a89742b6a62ba75fcd;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.api.slc/src/org/argeo/api/slc/DefaultNameVersion.java b/org.argeo.api.slc/src/org/argeo/api/slc/DefaultNameVersion.java new file mode 100644 index 000000000..7ae25cb51 --- /dev/null +++ b/org.argeo.api.slc/src/org/argeo/api/slc/DefaultNameVersion.java @@ -0,0 +1,77 @@ +package org.argeo.api.slc; + + +/** Canonical implementation of {@link NameVersion} */ +public class DefaultNameVersion implements NameVersion, + Comparable { + private String name; + private String version; + + public DefaultNameVersion() { + } + + /** Interprets string in OSGi-like format my.module.name;version=0.0.0 */ + public DefaultNameVersion(String nameVersion) { + int index = nameVersion.indexOf(";version="); + if (index < 0) { + setName(nameVersion); + setVersion(null); + } else { + setName(nameVersion.substring(0, index)); + setVersion(nameVersion.substring(index + ";version=".length())); + } + } + + public DefaultNameVersion(String name, String version) { + this.name = name; + this.version = version; + } + + public DefaultNameVersion(NameVersion nameVersion) { + this.name = nameVersion.getName(); + this.version = nameVersion.getVersion(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof NameVersion) { + NameVersion nameVersion = (NameVersion) obj; + return name.equals(nameVersion.getName()) + && version.equals(nameVersion.getVersion()); + } else + return false; + } + + @Override + public int hashCode() { + return name.hashCode(); + } + + @Override + public String toString() { + return name + ":" + version; + } + + public int compareTo(NameVersion o) { + if (o.getName().equals(name)) + return version.compareTo(o.getVersion()); + else + return name.compareTo(o.getName()); + } +}