@Nullable
  public static <ENUMTYPE extends Enum <ENUMTYPE> & IHasID <String>> ENUMTYPE getFromIDCaseInsensitiveOrDefault (@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                                 @Nullable final String sID,
                                                                                                                 @Nullable final ENUMTYPE eDefault)
  {
    ValueEnforcer.notNull (aClass, "Class");

    if (sID == null)
      return eDefault;
    return findFirst (aClass, x -> x.getID ().equalsIgnoreCase (sID), eDefault);
  }
@ Nullable public static < ENUMTYPE extends Enum < ENUMTYPE > & IHasID < String > > ENUMTYPE getFromIDCaseInsensitiveOrDefault ( @ Nonnull final Class < ENUMTYPE > aClass , @ Nullable final String sID , @ Nullable final ENUMTYPE eDefault ) { ValueEnforcer . notNull ( aClass , "Class" ) ; if ( sID == null ) return eDefault ; return findFirst ( aClass , x -> x . getID ( ) . equalsIgnoreCase ( sID ) , eDefault ) ; }
Get the enum value with the passed string ID case insensitive

@param <ENUMTYPE>
The enum type
@param aClass
The enum class
@param sID
The ID to search
@param eDefault
The default value to be returned, if the ID was not found.
@return The default parameter if no enum item with the given ID is present.