package eu.hgross.blaubot.core;
import java.util.UUID;
/**
* Generic IBlaubotDevice implementation, where the uniqueId can be freely chosen.
*/
public class BlaubotDevice implements IBlaubotDevice {
protected String uniqueDeviceId;
protected String readableName = null;
public BlaubotDevice() {
this(UUID.randomUUID().toString());
}
public BlaubotDevice(String uniqueId) {
this.uniqueDeviceId = uniqueId;
}
@Override
public String getUniqueDeviceID() {
return uniqueDeviceId;
}
@Override
public String getReadableName() {
return readableName == null || readableName.isEmpty() ? uniqueDeviceId : readableName;
}
public void setReadableName(String readableName) {
this.readableName = readableName;
}
@Override
public int compareTo(IBlaubotDevice another) {
return this.getUniqueDeviceID().compareTo(another.getUniqueDeviceID());
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("BlaubotDevice{");
sb.append("uniqueDeviceId='").append(uniqueDeviceId).append('\'');
sb.append('}');
return sb.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || !(o instanceof IBlaubotDevice)) return false;
return this.getUniqueDeviceID().equals(((IBlaubotDevice) o).getUniqueDeviceID());
}
@Override
public int hashCode() {
return uniqueDeviceId != null ? uniqueDeviceId.hashCode() : 0;
}
}