All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.centit.support.algorithm.EnumBaseOpt Maven / Gradle / Ivy

package com.centit.support.algorithm;

import com.centit.support.common.ObjectException;
import org.apache.commons.lang3.StringUtils;

public abstract class EnumBaseOpt {

    public static  T ordinalToEnum(Class enumType,
                                      int ordinal) {
        if (!enumType.isEnum()) {
            throw new ObjectException(enumType,
                enumType.getName() + " is not an Enum type.");
        }
        T[] values = enumType.getEnumConstants();
        if (ordinal < 0 || ordinal >= values.length) {
            throw new ObjectException(enumType,
                "IndexOutOfBoundsException: Enum " +
                    enumType.getName() + "invalid ordinal");
        }
        return values[ordinal];
    }

    public static  T stringToEnum(Class enumType,
                                                String name, boolean ignoreCase) {
        if (!enumType.isEnum()) {
            throw new ObjectException(enumType,
                enumType.getName() + " is not an Enum type.");
        }
        T[] values = enumType.getEnumConstants();
        for(T value : values){
            if(StringUtils.equals(((Enum)value).name(), name)
             || (ignoreCase && StringUtils.equalsIgnoreCase(((Enum)value).name(), name))){
                return value;
            }
        }
        return null;
    }

    public static  T stringToEnum(Class enumType,
                                     String name){
        return stringToEnum(enumType, name, false);
    }

    public static int enumToOrdinal(Object enumObj) {
        if (!enumObj.getClass().isEnum()) {
            throw new ObjectException(enumObj,
                enumObj.getClass().getName() + " is not an object of Enum.");
        }
        return ((Enum) enumObj).ordinal();
    }

    public static String enumToString(Object enumObj) {
        if (!enumObj.getClass().isEnum()) {
            throw new ObjectException(enumObj,
                enumObj.getClass().getName() + " is not an object of Enum.");
        }
        return ((Enum) enumObj).name();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy