package diskCacheV111.poolManager;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import diskCacheV111.poolManager.PoolSelectionUnit.SelectionUnit;
import diskCacheV111.poolManager.PoolSelectionUnit.SelectionUnitGroup;
class Unit implements Serializable, SelectionUnit {
private static final long serialVersionUID = -2534629882175347637L;
private final String _name;
private final int _type;
final Map<String, UGroup> _uGroupList = new ConcurrentHashMap<>();
Unit(String name, int type) {
_name = name;
_type = type;
}
@Override
public String getName() {
return _name;
}
public String getCanonicalName() {
return getName();
}
public int getType() {
return _type;
}
@Override
public Collection<SelectionUnitGroup> getMemberOfUnitGroups() {
return new ArrayList(_uGroupList.values());
}
@Override
public String getUnitType() {
switch (_type) {
case PoolSelectionUnitV2.STORE: return "Store";
case PoolSelectionUnitV2.DCACHE: return "DCache";
case PoolSelectionUnitV2.PROTOCOL: return "Protocol";
case PoolSelectionUnitV2.NET: return "Net";
}
return "Unknown";
}
@Override
public String toString() {
return _name + " (type=" + getUnitType() + ";canonical=" + getCanonicalName() + ";uGroups=" + _uGroupList.size() + ")";
}
}