package org.ovirt.mobile.movirt.util.usage;
import org.ovirt.mobile.movirt.provider.OVirtContract;
public class Cores implements UsageResource {
private static final String unit = "";
private long cores = 0;
/**
* cores initialized to 0
*/
public Cores() {
}
/**
* @param cores truncated to 0 if cores < 0
*/
public Cores(long cores) {
setValue(cores);
}
public <T extends OVirtContract.HasSockets & OVirtContract.HasCoresPerSocket> Cores(T value) {
this(value.getCoresPerSocket(), value.getSockets());
}
/**
* computed value truncated to 0 if cores < 0 || sockets < 0
*
* @param coresPerSocket number of cores per socket
* @param sockets number of sockets
*/
public Cores(long coresPerSocket, long sockets) {
setValue(coresPerSocket, sockets);
}
/**
* @return cores
*/
public long getValue() {
return cores;
}
/**
* added value truncated to 0 if cores < 0 || sockets < 0
*
* @param cores number of cores
*/
public void setValue(long cores) {
if (cores > 0) {
this.cores = cores;
}
}
/**
* computed value truncated to 0 if cores < 0 || sockets < 0
*
* @param coresPerSocket number of cores per socket
* @param sockets number of sockets
*/
public void setValue(long coresPerSocket, long sockets) {
if (coresPerSocket > 0 && sockets > 0) {
this.cores = sockets * coresPerSocket;
}
}
/**
* @param cores adds cores, no operation occurs if cores < 0
*/
public void addValue(long cores) {
if (cores > 0) {
this.cores += cores;
}
}
/**
* adds cores, no operation occurs if cores < 0 || sockets < 0
*
* @param coresPerSocket number of cores per socket
* @param sockets number of sockets
*/
public void addValue(long coresPerSocket, long sockets) {
if (coresPerSocket > 0 && sockets > 0) {
this.cores += sockets * coresPerSocket;
}
}
/**
* adds cores, no operation occurs if cores < 0 || sockets < 0
*
* @param value entity with socket and cores per socket
*/
public <T extends OVirtContract.HasSockets & OVirtContract.HasCoresPerSocket> void addValue(T value) {
addValue(value.getCoresPerSocket(), value.getSockets());
}
/**
* adds cores, no operation occurs if cores < 0 || sockets < 0
*
* @param cores cores
*/
public void addValue(Cores cores) {
addValue(cores.getValue());
}
/**
* @return string representation of number of cores
*/
public String getReadableValueAsString() {
return Long.toString(cores);
}
/**
* @return ""
*/
public String getReadableUnitAsString() {
return unit;
}
@Override
public String toString() {
return getReadableValueAsString();
}
}