package org.limewire.io;
import java.net.UnknownHostException;
import org.limewire.util.Objects;
public class UnresolvedIpPortImpl implements UnresolvedIpPort {
private final String host;
private final int port;
public UnresolvedIpPortImpl(String host, int port) {
this.host = Objects.nonNull(host, "host");
this.port = port;
}
/**
* Expects an address port pair in the form "address:port".
*/
public UnresolvedIpPortImpl(String addressAndPort) throws InvalidDataException {
String[] parts = addressAndPort.split(":");
if(parts.length != 2) {
throw new InvalidDataException("Input is expected as an address port pair in the form, address:port");
}
this.host = parts[0];
try {
this.port = Integer.parseInt(parts[1]);
} catch (NumberFormatException e) {
throw new InvalidDataException("Port is expected to be an integer.", e);
}
}
@Override
public IpPort resolve() throws UnknownHostException {
return new IpPortImpl(host, port);
}
@Override
public int getPort() {
return port;
}
@Override
public String getAddress() {
return host;
}
}