public <T extends Enum<T>> T get(String property, T defaultValue) { String value = properties.getProperty(property); if (value == null) return parent.get(property, defaultValue); if (defaultValue == null) throw new IllegalArgumentException("Must supply a default for property " + property); Class<T> enumType = (Class<T>) defaultValue.getClass(); try { return log(property, valueOf(enumType, value.toUpperCase())); } catch (IllegalArgumentException e) { warn(property, value); return parent.get(property, defaultValue); } }
public <T extends Enum<T>> T get(final String property, final T defaultValue) { final String value = properties.getProperty(property); if (value == null || value.equals("")) { return parent.get(property, defaultValue); } if (defaultValue == null) { throw new IllegalArgumentException("Must supply a default for property " + property); } final Class<T> enumType = (Class<T>) defaultValue.getClass(); try { return log(property, valueOf(enumType, value.toUpperCase())); } catch (final IllegalArgumentException e) { warn(property, value); return parent.get(property, defaultValue); } }
protected <T extends Enum<T>> Set<T> getAll(final String property, final Set<T> defaultValue, final Class<T> enumType) { final String value = properties.getProperty(property); if (value == null || value.equals("")) { return parent.getAll(property, defaultValue, enumType); } // Shorthand for specifying ALL or NONE for any option // that allows for multiple values of the enum if ("all".equalsIgnoreCase(value) || "true".equalsIgnoreCase(value)) { log(property, value); return EnumSet.allOf(enumType); } else if ("none".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value)) { log(property, value); return EnumSet.noneOf(enumType); } try { final String[] values = value.split(","); final EnumSet<T> set = EnumSet.noneOf(enumType); for (String s : values) { s = s.trim(); set.add(valueOf(enumType, s.toUpperCase())); } return logAll(property, set); } catch (final IllegalArgumentException e) { warn(property, value); return parent.getAll(property, defaultValue, enumType); } }
protected <T extends Enum<T>> Set<T> getAll(String property, Set<T> defaultValue, Class<T> enumType) { String value = properties.getProperty(property); if (value == null) return parent.getAll(property, defaultValue, enumType); // Shorthand for specifying ALL or NONE for any option // that allows for multiple values of the enum if ("all".equalsIgnoreCase(value) || "true".equalsIgnoreCase(value)) { log(property, value); return EnumSet.allOf(enumType); } else if ("none".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value)) { log(property, value); return EnumSet.noneOf(enumType); } try { String[] values = value.split(","); EnumSet<T> set = EnumSet.noneOf(enumType); for (String s : values) { s = s.trim(); set.add(valueOf(enumType, s.toUpperCase())); } return logAll(property, set); } catch (IllegalArgumentException e) { warn(property, value); return parent.getAll(property, defaultValue, enumType); } }
public <T extends Enum<T>> T get(final String property, final T defaultValue) { final String value = properties.getProperty(property); if (value == null || value.equals("")) { return parent.get(property, defaultValue); } if (defaultValue == null) { throw new IllegalArgumentException("Must supply a default for property " + property); } final Class<T> enumType = (Class<T>) defaultValue.getClass(); try { return log(property, valueOf(enumType, value.toUpperCase())); } catch (final IllegalArgumentException e) { warn(property, value); return parent.get(property, defaultValue); } }
protected <T extends Enum<T>> Set<T> getAll(final String property, final Set<T> defaultValue, final Class<T> enumType) { final String value = properties.getProperty(property); if (value == null || value.equals("")) { return parent.getAll(property, defaultValue, enumType); } // Shorthand for specifying ALL or NONE for any option // that allows for multiple values of the enum if ("all".equalsIgnoreCase(value) || "true".equalsIgnoreCase(value)) { log(property, value); return EnumSet.allOf(enumType); } else if ("none".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value)) { log(property, value); return EnumSet.noneOf(enumType); } try { final String[] values = value.split(","); final EnumSet<T> set = EnumSet.noneOf(enumType); for (String s : values) { s = s.trim(); set.add(valueOf(enumType, s.toUpperCase())); } return logAll(property, set); } catch (final IllegalArgumentException e) { warn(property, value); return parent.getAll(property, defaultValue, enumType); } }