// Copyright 2000-2003, FreeHEP.
package hep.graphics.heprep.ref;
import hep.graphics.heprep.HepRepTreeID;
import java.io.Serializable;
/**
*
* @author M.Donszelmann
*
* @version $Id: DefaultHepRepTreeID.java 8584 2006-08-10 23:06:37Z duns $
*/
public class DefaultHepRepTreeID implements HepRepTreeID, Serializable {
private String qualifier;
private String name;
private String version;
protected DefaultHepRepTreeID(String name, String version) {
this(name, version, "top-level");
}
protected DefaultHepRepTreeID(String name, String version, String qualifier) {
this.name = name;
this.version = version;
this.qualifier = qualifier;
}
public String getQualifier() {
return qualifier;
}
public void setQualifier(String qualifier) {
this.qualifier = qualifier;
}
public String getName() {
return name;
}
public String getVersion() {
return version;
}
// NOTE: qualifier not part of equals and hashCode
public boolean equals(Object o) {
if (o == this) return true;
if (o instanceof HepRepTreeID) {
HepRepTreeID id = (HepRepTreeID)o;
if (!getName().equals(id.getName())) return false;
return (getVersion() == null) ? (id.getVersion() == null) : getVersion().equals(id.getVersion());
}
return false;
}
// NOTE: qualifier not part of equals and hashCode
public int hashCode() {
long code = getName().hashCode();
code += (getVersion() != null) ? getVersion().hashCode() : 0;
return (int)code;
}
public String toString() {
return getClass()+": "+getQualifier()+":"+getName()+":"+getVersion();
}
}