package org.dcache.webadmin.view.pages.spacetokens.beans;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.dcache.webadmin.view.util.DiskSpaceUnit;
/**
*
* @author jans
*/
public class LinkGroupBean implements Serializable, Comparable<LinkGroupBean> {
private static final long serialVersionUID = 268459757771571652L;
private String _name = "";
// -1 means "not assinged"
private long _id = -1;
private String _allowed = "";
private String _vos = "";
private long _available;
private long _reserved;
private long _free;
private long _total;
private List<SpaceReservationBean> _reservations = new ArrayList<>();
private DiskSpaceUnit _displayUnit = DiskSpaceUnit.MIBIBYTES;
public List<SpaceReservationBean> getReservations() {
return Collections.unmodifiableList(_reservations);
}
public void setReservations(List<SpaceReservationBean> reservations) {
_reservations = reservations;
}
public String getName() {
return _name;
}
public void setName(String name) {
_name = name;
}
public String getAllowed() {
return _allowed;
}
public void setAllowed(String allowed) {
_allowed = allowed;
}
public long getAvailable() {
return DiskSpaceUnit.BYTES.convert(_available, _displayUnit);
}
public void setAvailable(long available) {
_available = available;
calculateTotal();
}
public long getFree() {
return DiskSpaceUnit.BYTES.convert(_free, _displayUnit);
}
public void setFree(long free) {
_free = free;
}
public boolean hasId() {
return _id != -1;
}
public long getId() {
return _id;
}
public void setId(long id) {
_id = id;
}
public long getReserved() {
return DiskSpaceUnit.BYTES.convert(_reserved, _displayUnit);
}
public void setReserved(long reserved) {
_reserved = reserved;
calculateTotal();
}
public long getTotal() {
return DiskSpaceUnit.BYTES.convert(_total, _displayUnit);
}
public String getVos() {
return _vos;
}
public void setVos(String vos) {
_vos = vos;
}
private void calculateTotal() {
_total = _available + _reserved;
}
public void addSpaceReservation(SpaceReservationBean reservation) {
_reservations.add(reservation);
}
@Override
public int compareTo(LinkGroupBean other) {
return this._name.compareTo(other._name);
}
@Override
public int hashCode() {
return _name.hashCode();
}
@Override
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof LinkGroupBean)) {
return false;
}
LinkGroupBean otherGroup = (LinkGroupBean) other;
if (!(otherGroup._name.equals(_name))) {
return false;
}
return true;
}
}