package com.ibm.nmon.data.transform;
import com.ibm.nmon.data.DataType;
/**
* Adds a 'Total' column to PCPU and SCPU data in AIX.
*/
public final class AIXCPUTransform implements DataTransform {
@Override
public DataType buildDataType(String id, String subId, String name, String... fields) {
String[] newFields = new String[fields.length + 1];
// Assume User, Sys, Wait, Idle + Entitled Capacity on PCPU
System.arraycopy(fields, 0, newFields, 0, 4);
if (fields.length == 4) {
newFields[4] = "Total";
}
else {
newFields[5] = fields[4];
newFields[4] = "Total";
}
return new DataType(id, name, newFields);
}
@Override
public double[] transform(DataType type, double[] data) {
double[] newData = new double[data.length + 1];
System.arraycopy(data, 0, newData, 0, 4);
if (data.length == 5) {
newData[5] = data[4];
}
double total = 0;
for (int i = 0; i < 4; i++) {
total += data[i];
}
newData[4] = total;
return newData;
}
@Override
public boolean isValidFor(String typeId, String subId) {
return typeId.startsWith("SCPU") || typeId.startsWith("PCPU");
}
}