X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=blobdiff_plain;f=org.argeo.init%2Fsrc%2Forg%2Fargeo%2Fapi%2Fa2%2FA2Module.java;fp=org.argeo.init%2Fsrc%2Forg%2Fargeo%2Fapi%2Fa2%2FA2Module.java;h=4ad43625f79d927845204eb28d423f054d8ad06f;hp=0000000000000000000000000000000000000000;hb=b95462873703848193e56fcbe997693630db6121;hpb=55d88fba80cec198a0f11ba7545e19878c51fc5e diff --git a/org.argeo.init/src/org/argeo/api/a2/A2Module.java b/org.argeo.init/src/org/argeo/api/a2/A2Module.java new file mode 100644 index 000000000..4ad43625f --- /dev/null +++ b/org.argeo.init/src/org/argeo/api/a2/A2Module.java @@ -0,0 +1,62 @@ +package org.argeo.api.a2; + +import org.osgi.framework.Version; + +/** + * An identified software package. In OSGi's case this is the combination of + * Bundle-SymbolicName and Bundle-version. This is the + * equivalent of the full coordinates of a Maven artifact version. + */ +public class A2Module implements Comparable { + private final A2Branch branch; + private final Version version; + private final Object locator; + + public A2Module(A2Branch branch, Version version, Object locator) { + this.branch = branch; + this.version = version; + this.locator = locator; + branch.modules.put(version, this); + } + + public A2Branch getBranch() { + return branch; + } + + public Version getVersion() { + return version; + } + + Object getLocator() { + return locator; + } + + @Override + public int compareTo(A2Module o) { + return version.compareTo(o.version); + } + + @Override + public int hashCode() { + return version.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof A2Module) { + A2Module o = (A2Module) obj; + return branch.equals(o.branch) && version.equals(o.version); + } else + return false; + } + + @Override + public String toString() { + return getCoordinates(); + } + + public String getCoordinates() { + return branch.getComponent() + ":" + version; + } + +}