package org.myrobotlab.framework.repo;
import java.io.Serializable;
import java.util.Comparator;
import org.myrobotlab.logging.LoggerFactory;
import org.slf4j.Logger;
public class Library implements Serializable, Comparator<Library> {
transient public final static Logger log = LoggerFactory.getLogger(Library.class);
private static final long serialVersionUID = 1L;
private String org;
private String revision;
private boolean installed = false;
public Library() {
this(null, null, true);
}
/**
* constructor with key - of form [org/version]
*
* @param key
*/
public Library(String key) {
String[] split = key.split("/");
if (split.length != 2) {
String err = String.format("%s not a valid library key", key);
log.error(err);
throw new RuntimeException(err);
}
this.org = split[0];
this.revision = split[1];
}
public Library(String organisation, String version) {
this.org = organisation;
this.revision = version;
}
public Library(String organisation, String version, boolean released) {
this.org = organisation;
this.revision = version;
}
@Override
public int compare(Library o1, Library o2) {
return o1.getOrg().compareTo(o2.getOrg());
}
public String getModule() {
if (org == null) {
return null;
}
int p = org.lastIndexOf(".");
if (p == -1) {
return org;
} else {
return org.substring(p + 1);
}
}
public String getOrg() {
return org;
}
public String getRevision() {
return revision;
}
public boolean isInstalled() {
return installed;
}
public void setRevision(String revision) {
this.revision = revision;
}
@Override
public String toString() {
return String.format("%s %s %b", org, revision, installed);
}
public void setInstalled(boolean installed) {
this.installed = installed;
}
public String getKey() {
return String.format("%s/%s", org, revision);
}
}