package org.ourgrid.peer.dao;
import java.io.Serializable;
import org.ourgrid.common.util.StringUtil;
import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceInfo;
/**
* @author guilherme, tarciso
* DSClientDiscoveryServiceInfo is a class for an object which represents
* the DS in the DSClient DAO.
*/
public class DSClientDiscoveryServiceInfo implements Comparable<DSClientDiscoveryServiceInfo>, Serializable {
private static final long serialVersionUID = 1L;
private String dsAddress;
private boolean isOverloaded;
/**
* Constructor
* @param dsAddress the address (ServiceID) of the DS
*/
public DSClientDiscoveryServiceInfo(String dsAddress) {
this.dsAddress = dsAddress;
this.isOverloaded = false;
}
public String getDsAddress() {
return dsAddress;
}
public void setDsAddress(String dsAddress) {
this.dsAddress = dsAddress;
}
/**
* Verifies if the DS is overloaded (has reached its maximum capacity of peer storage)
* @return true if the DS is overloaded; false otherwise
*/
public boolean isOverloaded() {
return isOverloaded;
}
public void setOverloaded(boolean isOverloaded) {
this.isOverloaded = isOverloaded;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object object) {
if (! (object instanceof DiscoveryServiceInfo)) {
return false;
}
DiscoveryServiceInfo dsInfo = (DiscoveryServiceInfo) object;
return dsInfo.getDsAddress().equals(this.dsAddress);
}
/* (non-Javadoc)
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(DSClientDiscoveryServiceInfo otherDSInfo) {
return this.dsAddress.compareTo(otherDSInfo.dsAddress);
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return (StringUtil.addressToUserAtServer(dsAddress) + "\tStatus: " + (isOverloaded? "OVERLOADED":"NOT OVERLOADED"));
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode(){
return dsAddress.hashCode();
}
}