package uk.ac.imperial.lsds.seep.infrastructure;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class DataEndPoint implements SeepEndPoint {
private final int id;
private final String ip;
private final int dataPort;
public DataEndPoint(int id, String ip, int dataPort) {
this.id = id;
this.ip = ip;
this.dataPort = dataPort;
}
@Override
public int getId() {
return id;
}
@Override
public int getType() {
return SeepEndPointType.DATA.ofType();
}
@Override
public InetAddress getIp() {
try {
return InetAddress.getByName(ip);
} catch (UnknownHostException e) {
e.printStackTrace();
}
return null;
}
@Override
public int getPort() {
return dataPort;
}
/**
* An EndPoint is valid is its IP is not null
* @return
*/
@Override
public boolean isValid() {
if(ip == null) return false;
return true;
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(this.ip.toString()+" dataPort: "+this.dataPort);
return sb.toString();
}
@Override
public int hashCode() {
return id;
}
@Override
public boolean equals(Object obj){
return this.hashCode() == obj.hashCode();
}
/**
* Empty constructor for kryo serialization
*/
public DataEndPoint() {
this.id = 0;
this.ip = null;
this.dataPort = 0;
}
}