package org.torrent.internal.data;
import org.torrent.internal.util.Validator;
/**
* Does not resolve anything unless getInetSocketAddress() is called.
*
* @author dante
*
*/
public class InetSocketAddress {
private final String host;
private final int port;
private java.net.InetSocketAddress inetSA;
public InetSocketAddress(String host, int port) {
Validator.notNull(host, "Host is null!");
Validator.isTrue(port >= 0 && port <= 65535, "Port out of range: "
+ port);
this.host = host;
this.port = port;
}
public String getHost() {
return host;
}
public int getPort() {
return port;
}
public synchronized java.net.InetSocketAddress getInetSocketAddress() {
if (inetSA == null) {
inetSA = new java.net.InetSocketAddress(host, port);
}
return inetSA;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof InetSocketAddress) {
InetSocketAddress other = (InetSocketAddress) obj;
return getInetSocketAddress().equals(other.getInetSocketAddress());
}
return false;
}
@Override
public int hashCode() {
return -getInetSocketAddress().hashCode();
}
@Override
public String toString() {
return host + ":" + port;
}
}