// Path: src/ca/hullabaloo/properties/Utils.java
// static void checkArgument(boolean b) {
//   if (!b) {
//     throw new IllegalArgumentException();
//   }
// }


import static ca.hullabaloo.properties.Utils.checkArgument;
package ca.hullabaloo.properties;


/**
 * Converts an enum type from its string name to the enum value
 */
enum EnumConverter implements Converter {
  INSTANCE;

  @Override public boolean supportsTarget(Class<?> type) {
    return type.isEnum();
  }

  @Override @SuppressWarnings({"unchecked"})
  public <T> T convert(String s, Class<T> targetType) {
    checkArgument(supportsTarget(targetType));
// Path: src/ca/hullabaloo/properties/Utils.java
// static void checkArgument(boolean b) {
//   if (!b) {
//     throw new IllegalArgumentException();
//   }
// }


// Path: src/ca/hullabaloo/properties/EnumConverter.java
import static ca.hullabaloo.properties.Utils.checkArgument;

package ca.hullabaloo.properties;


/**
 * Converts an enum type from its string name to the enum value
 */
enum EnumConverter implements Converter {
  INSTANCE;

  @Override public boolean supportsTarget(Class<?> type) {
    return type.isEnum();
  }

  @Override @SuppressWarnings({"unchecked"})
  public <T> T convert(String s, Class<T> targetType) {
    checkArgument(supportsTarget(targetType));
    Exception cause;