com.alibaba.dcm.DnsCacheEntry Maven / Gradle / Ivy
package com.alibaba.dcm;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import javax.annotation.concurrent.Immutable;
/**
* @author Jerry Lee (oldratlee at gmail dot com)
* @see DnsCache
*/
@Immutable
public final class DnsCacheEntry implements Serializable {
private static final long serialVersionUID = -7476648934387757732L;
private final String host;
private final String[] ips;
private final Date expiration;
public String getHost() {
return host;
}
public String[] getIps() {
String[] copy = new String[ips.length];
System.arraycopy(ips, 0, copy, 0, ips.length); // defensive copy
return copy;
}
public String getIp() {
return ips[0];
}
public Date getExpiration() {
return expiration;
}
public DnsCacheEntry(String host, String[] ips, Date expiration) {
this.host = host;
this.ips = ips;
this.expiration = expiration;
}
@Override
public String toString() {
final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
return "DnsCacheEntry{" +
"host='" + host + '\'' +
", ips=" + Arrays.toString(ips) +
", expiration=" + dateFormat.format(expiration) +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DnsCacheEntry that = (DnsCacheEntry) o;
if (host != null ? !host.equals(that.host) : that.host != null)
return false;
if (!Arrays.equals(ips, that.ips)) return false;
return !(expiration != null ? !expiration.equals(that.expiration) : that.expiration != null);
}
@Override
public int hashCode() {
int result = host != null ? host.hashCode() : 0;
result = 31 * result + (ips != null ? Arrays.hashCode(ips) : 0);
result = 31 * result + (expiration != null ? expiration.hashCode() : 0);
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy