package com.datascience.core.base;
import com.google.common.base.Objects;
/**
* We ignore label in comparison/hashcode
*
* @Author: konrad
*/
public class AssignedLabel<T> {
protected LObject<T> lobject;
protected Worker worker;
protected T label;
public AssignedLabel(Worker worker, LObject<T> object, T label){
this.label = label;
this.lobject = object;
this.worker = worker;
}
public LObject<T> getLobject() {
return lobject;
}
public void setLobject(LObject lobject) {
this.lobject = lobject;
}
public T getLabel() {
return label;
}
public void setLabel(T label) {
this.label = label;
}
public Worker getWorker() {
return worker;
}
public void setWorker(Worker worker) {
this.worker = worker;
}
@Override
public boolean equals(Object o) {
if (o instanceof AssignedLabel) {
AssignedLabel al = (AssignedLabel) o;
return Objects.equal(lobject, al.lobject) &&
Objects.equal(worker, al.worker);
}
return false;
}
@Override
public int hashCode() {
return Objects.hashCode(lobject, worker);
}
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("lobject", (lobject != null)?lobject.getName():"-")
.add("worker", (worker != null)?worker.getName():"-")
.add("label", label)
.toString();
}
}