private static String validateDurationUnit(final String durationString, final Duration duration) throws InvalidDurationException { if (durationString.length() > 1) { String singular = duration.name().toLowerCase(); String plural = duration.name().toLowerCase() + "s"; if (durationString.contains(plural)) { return durationString.substring(durationString.indexOf(plural)); } else if (durationString.contains(singular)) { return durationString.substring(durationString.indexOf(singular)); } else { throw new InvalidDurationException("Not a valid durationString string"); } } return durationString.substring(1); }
public static Map<String, Duration> getDurationTokens(I18nTextProvider i18n) { Map<String, Duration> tokens = new HashMap<String, DateUtils.Duration>(); tokens.put(getDurationToken(i18n, UNIT_DAY), Duration.DAY); tokens.put(getDurationToken(i18n, UNIT_HOUR), Duration.HOUR); tokens.put(getDurationToken(i18n, UNIT_MINUTE), Duration.MINUTE); for (Duration d : Duration.values()) { String n = d.name().toLowerCase(); tokens.put(i18n.getText("core.dateutils." + n), d); tokens.put(i18n.getText("core.dateutils." + n + "s"), d); } return tokens; }
public String getDefaultTimeUnit() { final Map<String, String> map = MapBuilder.<String, String>newBuilder() .add(DateUtils.Duration.MINUTE.name(), getText("core.dateutils.minute")) .add(DateUtils.Duration.HOUR.name(), getText("core.dateutils.hour")) .add(DateUtils.Duration.DAY.name(), getText("core.dateutils.day")) .add(DateUtils.Duration.WEEK.name(), getText("core.dateutils.week")).toMap(); DateUtils.Duration defaultUnit; try { defaultUnit = DateUtils.Duration.valueOf(applicationProperties.getDefaultBackedString(APKeys.JIRA_TIMETRACKING_DEFAULT_UNIT)); } catch (IllegalArgumentException e) { defaultUnit = DateUtils.Duration.MINUTE; } catch (NullPointerException e) { defaultUnit = DateUtils.Duration.MINUTE; } return map.get(defaultUnit.toString()); }