public static Recur createFromExtraString(String extra) { if (Utils.isEmpty(extra)) { return new NoRecur(); } String[] a = extra.split(","); RecurInterval interval = RecurInterval.valueOf(a[0]); HashMap<String, String> values = toMap(a); switch (interval) { case NO_RECUR: return new NoRecur(values); case EVERY_X_DAY: return new EveryXDay(values); case DAILY: return new Daily(values); case WEEKLY: return new Weekly(values); case SEMI_MONTHLY: return new SemiMonthly(values); case MONTHLY: return new Monthly(values); case YEARLY: return new Yearly(values); } return null; }