class InputsUtil {

    public static <T extends Enum<T>> String getEnumValidValuesString(Class<T> inputEnum) {
        StringBuilder sb = new StringBuilder();
        for (T enumValue : inputEnum.getEnumConstants()) {
            if (AuthType.class.getCanonicalName().equalsIgnoreCase(enumValue.getClass().getCanonicalName())) {
                sb.append(((AuthType) enumValue).getValue()).append(COMMA).append(BLANK_SPACE);
            } else if (BucketType.class.getCanonicalName().equalsIgnoreCase(enumValue.getClass().getCanonicalName())) {
                sb.append(((BucketType) enumValue).getValue()).append(COMMA).append(BLANK_SPACE);
            } else if (ConflictResolutionType.class.getCanonicalName().equalsIgnoreCase(enumValue.getClass().getCanonicalName())) {
                sb.append(((ConflictResolutionType) enumValue).getValue()).append(COMMA).append(BLANK_SPACE);
            } else if (EvictionPolicy.class.getCanonicalName().equalsIgnoreCase(enumValue.getClass().getCanonicalName())) {
                sb.append(((EvictionPolicy) enumValue).getValue()).append(COMMA).append(BLANK_SPACE);
            } else if (RecoveryType.class.getCanonicalName().equalsIgnoreCase(enumValue.getClass().getCanonicalName())) {
                sb.append(((RecoveryType) enumValue).getValue()).append(COMMA).append(BLANK_SPACE);
            }
        }

        return isBlank(sb.toString()) ? EMPTY : sb.deleteCharAt(sb.length() - 2).toString().trim();
    }

    private  InputsUtil();

}