CaseInsensitiveEnumConverter.java
/*
* Copyright (C) 2024 B3Partners B.V.
*
* SPDX-License-Identifier: MIT
*/
package org.tailormap.api.configuration;
import java.util.Locale;
import org.springframework.core.convert.converter.Converter;
/**
* A utility class to convert a string to an enum in a case-insensitive way.
*
* @param <T> the enum type
*/
public class CaseInsensitiveEnumConverter<T extends Enum<T>> implements Converter<String, T> {
private final Class<T> enumClass;
public CaseInsensitiveEnumConverter(Class<T> enumClass) {
this.enumClass = enumClass;
}
@Override
public T convert(String from) {
return Enum.valueOf(enumClass, from.toUpperCase(Locale.ROOT));
}
}