@Override public String unparse(Duration value) { if (value != null) { return value.getUnitCount() + " " + value.getUnit(); } else { return null; } } }
@Override public Duration parse(String text) { if (text == null || text.isEmpty()) { return null; } try { String[] parts = text.split(" "); final String unit = parts[1].toUpperCase(); final String unitCount = parts[0]; return new Duration(TimeUnit.valueOf(unit), Integer.parseInt(unitCount)); } catch (Exception e) { LOGGER.warn("Caught exception while parsing duration {}, discarding the invalid duration.", e, text); return null; } }