package com.sk89q.commandbook.bans;
import java.util.UUID;
/**
* @author zml2008
*/
public class Ban {
private final UUID ID;
private String name;
private final String address;
private final String reason;
private final long start;
private final long end;
public Ban(UUID ID, String name, String address, String reason, long start, long end) {
this.ID = ID;
this.name = name;
this.address = address;
this.reason = reason;
this.start = start;
this.end = end;
}
public UUID getID() {
return ID;
}
public String getLastKnownAlias() {
return name;
}
public void setLastAlias(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public String getReason() {
return reason;
}
public long getStart() {
return start;
}
public long getEnd() {
return end;
}
@Override
public boolean equals(Object other) {
if (!(other instanceof Ban)) {
return false;
}
Ban ban = (Ban) other;
return potentialNullEquals(name, ban.name)
&& potentialNullEquals(address, ban.address);
}
public static boolean potentialNullEquals(Object a, Object b) {
return (a == null && b == null)
|| a != null && b != null
&& a.equals(b);
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (address != null ? address.hashCode() : 0);
return result;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("BAN[");
if (ID != null) {
builder.append("(UUID: ").append(ID).append(")");
}
if (name != null) {
builder.append("(LAST NAME: ").append(name).append(")");
}
if (address != null) {
builder.append("(ADDRESS: ").append(address).append(")");
}
if (reason != null) {
builder.append("(REASON: ").append(reason).append(")");
}
if (start != 0) {
builder.append("(START: ").append(start).append(")");
}
builder.append("(END: ");
if (end != 0) {
builder.append(end);
} else {
builder.append("NEVER");
}
builder.append(")");
builder.append("]");
return builder.toString();
}
}