public Map<String, Number> getNewSampleValues() { String perfstring = launchCmd(); String values[] = perfstring.split(":"); DsDef[] defs = getPd().getDsDefs(); int n = values.length; if(values.length != defs.length + 1) { throw new IllegalArgumentException("Invalid number of values specified (found " + values.length + ", " + defs.length + " allowed)"); } long time; String timeToken = values[0]; if(timeToken.equalsIgnoreCase("N") || timeToken.equalsIgnoreCase("NOW")) { time = System.currentTimeMillis() / 1000; } else { time = jrds.Util.parseStringNumber(timeToken, Long.MAX_VALUE); if(time == Long.MAX_VALUE) { throw new IllegalArgumentException("Invalid sample timestamp: " + timeToken); } } Map<String, Number> retValues = new HashMap<String, Number>(n - 1); for(int i = 0; i < defs.length; i++) { double value = jrds.Util.parseStringNumber(values[i + 1], Double.NaN); retValues.put(defs[i].getDsName(), value); } return retValues; }