if (data != null)
{
for (int i = 16; i + 44 <= data.length; i += 44)
{
Rate standardRate = new Rate(MPPUtility.getDouble(data, i), TimeUnit.HOURS);
TimeUnit standardRateFormat = getFormat(MPPUtility.getShort(data, i + 8));
Rate overtimeRate = new Rate(MPPUtility.getDouble(data, i + 16), TimeUnit.HOURS);
TimeUnit overtimeRateFormat = getFormat(MPPUtility.getShort(data, i + 24));
Double costPerUse = NumberUtility.getDouble(MPPUtility.getDouble(data, i + 32) / 100.0);
Date endDate = MPPUtility.getTimestampFromTenths(data, i + 40);
CostRateTableEntry entry = new CostRateTableEntry(standardRate, standardRateFormat, overtimeRate, overtimeRateFormat, costPerUse, endDate);
result.add(entry);
}