package org.infinispan.distribution;
import org.infinispan.remoting.transport.TopologyAwareAddress;
/**
* Mock TopologyAwareAddress to be used in tests.
* We only care about the addressNum for equality, so we don't override compareTo(), equals() and hashCode().
*
* @author Dan Berindei <dberinde@redhat.com>
* @since 5.0
*/
public class TestTopologyAwareAddress extends TestAddress implements TopologyAwareAddress {
String siteId, rackId, machineId;
public TestTopologyAwareAddress(int addressNum, String siteId, String rackId, String machineId) {
super(addressNum);
this.siteId = siteId;
this.rackId = rackId;
this.machineId = machineId;
}
public TestTopologyAwareAddress(int addressNum) {
this(addressNum, null, null, null);
}
@Override
public String toString() {
return super.toString() + "|" + machineId + "|" + rackId + "|" + siteId;
}
@Override
public boolean isSameSite(TopologyAwareAddress addr) {
return siteId != null ? siteId.equals(addr.getSiteId()) : addr.getSiteId() == null;
}
@Override
public boolean isSameRack(TopologyAwareAddress addr) {
if (!isSameSite(addr))
return false;
return rackId != null ? rackId.equals(addr.getRackId()) : addr.getRackId() == null;
}
@Override
public boolean isSameMachine(TopologyAwareAddress addr) {
if (!isSameSite(addr) || !isSameRack(addr))
return false;
return machineId != null ? machineId.equals(addr.getMachineId()) : addr.getMachineId() == null;
}
public String getSiteId() {
return siteId;
}
public void setSiteId(String siteId) {
this.siteId = siteId;
}
public String getRackId() {
return rackId;
}
public void setRackId(String rackId) {
this.rackId = rackId;
}
public String getMachineId() {
return machineId;
}
public void setMachineId(String machineId) {
this.machineId = machineId;
}
}