code: public static <T extends EnumValue> T valueOf(@NonNull Class<T> enumClass, @NonNull String name) {
        String key = toKey(enumClass, name);
        T toReturn = Cast.as(GLOBAL_REPOSITORY.get(key));
        if (toReturn == null) {
           throw new IllegalArgumentException("No enum constant " + key);
        }
        return toReturn;
     }
docs: <p>Returns the constant of the given {@link EnumValue} class  with the specified name.The normalized version of
  the specified name will be matched allowing for case and space variations.</p>
  
  @param <T>       Specific type of EnumValue being looked up
  @param enumClass Class information for the EnumValue that we will check.
  @param name      the name of the specified value
  @return The constant of enumClass with the specified name
  @throws IllegalArgumentException if the specified name is not a member of enumClass.
  @throws NullPointerException     if either the enumClass or name are null