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

io.gitee.ludii.excel.utils.CommonUtils Maven / Gradle / Ivy

package io.gitee.ludii.excel.utils;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.ParseException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * @author 陆迪
 * @date 2022/3/23
 */
public class CommonUtils {

    private static final String TRUE_NUMBER = "1";

    public static final String SETTER_PREFIX = "set";

    public static final String GETTER_PREFIX = "get";

    private CommonUtils() {
    }

    public final static String[] DATE_PARSE_PATTERNS = {
            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd HH", "yyyy-MM",
            "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM/dd HH", "yyyy/MM",
            "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM.dd HH", "yyyy.MM",
            "yyyy年MM月dd日", "yyyy年MM月dd日 HH时mm分ss秒", "yyyy年MM月dd日 HH时mm分", "yyyy年MM月dd日 HH时", "yyyy年MM月",
            "yyyyMMdd", "yyyyMM", "yyyy"};


    /**
     * 日期型字符串转化为日期 格式   see to DateUtils#parsePatterns
     */
    public static Date parseDate(Object val) {
        return parseDate(toString(val));
    }

    public static Date parseDate(String str) {
        if (str == null) {
            return null;
        }
        try {
            return DateUtils.parseDate(str, DATE_PARSE_PATTERNS);
        } catch (ParseException e) {
            return null;
        }
    }

    public static LocalDate parseLocalDate(String str) {
        Date date = parseDate(str);
        if (date == null) {
            return null;
        } else {
            return CommonUtils.convertToLocalDate(date);
        }
    }

    public static LocalDateTime parseLocalDateTime(String str) {
        Date date = parseDate(str);
        if (date == null) {
            return null;
        } else {
            return CommonUtils.convertToLocalDateTime(date);
        }
    }

    public static LocalDate convertToLocalDate(Date date) {
        return DateUtils.convertToLocalDate(date);
    }


    public static LocalDateTime convertToLocalDateTime(Date date) {
        return DateUtils.convertToLocalDateTime(date);
    }

    public static String toString(Object val) {
        return val == null ? null : val.toString();
    }


    public static boolean isBlank(String str) {
        return StringUtils.isBlank(str);
    }

    public static String xssFilter(String text) {
        return EncodeUtils.xssFilter(text);
    }

    public static Field[] getAllDeclaredFields(Class clazz) {
        List fieldList = new ArrayList<>();
        Field[] fields = clazz.getDeclaredFields();
        if (fields.length > 0) {
            fieldList.addAll(Arrays.asList(fields));
        }
        Class superClazz = clazz.getSuperclass();

        while (superClazz != Object.class) {
            Field[] superFields = superClazz.getDeclaredFields();
            if (superFields.length > 0) {
                fieldList.addAll(0, Arrays.asList(superFields));
            }
            superClazz = superClazz.getSuperclass();
        }

        return fieldList.toArray(new Field[0]);
    }

    public static Method[] getAllDeclaredMethods(Class clazz) {
        List methodList = new ArrayList<>();
        Method[] methods = clazz.getDeclaredMethods();
        if (methods.length > 0) {
            methodList.addAll(Arrays.asList(methods));
        }
        Class superClazz = clazz.getSuperclass();

        while (superClazz != Object.class) {
            Method[] superMethods = superClazz.getDeclaredMethods();
            if (superMethods.length > 0) {
                methodList.addAll(0, Arrays.asList(superMethods));
            }
            superClazz = superClazz.getSuperclass();
        }

        return methodList.toArray(new Method[0]);
    }

    public static  void invokeSetter(Object obj, String propertyName, E value) {
        ReflectUtils.invokeSetter(obj, propertyName, value);
    }

    public static  E invokeMethod(final Object obj, final String methodName, final Class[] parameterTypes,
                                     final Object[] args) {
        return ReflectUtils.invokeMethod(obj, methodName, parameterTypes, args);
    }

    public static  E invokeGetter(Object obj, String propertyName) {
        return ReflectUtils.invokeGetter(obj, propertyName);
    }


    public static boolean isNotBlank(final CharSequence cs) {
        return StringUtils.isNotBlank(cs);
    }

    public static boolean endsWith(final CharSequence str, final CharSequence suffix) {
        return StringUtils.endsWith(str, suffix);
    }

    public static String substringBefore(final String str, final String separator) {
        return StringUtils.substringBefore(str, separator);
    }

    public static boolean equals(final CharSequence cs1, final CharSequence cs2) {
        return StringUtils.equals(cs1, cs2);
    }

    public static String substringAfter(final String str, final String separator) {
        return StringUtils.substringAfter(str, separator);
    }

    public static String[] split(final String str, final String separatorChars, final int max) {
        return StringUtils.split(str, separatorChars, max);
    }

    public static String defaultString(final String str, final String defaultStr) {
        return StringUtils.defaultString(str, defaultStr);
    }

    public static Boolean valueOf(String numberStr) {
        if (TRUE_NUMBER.equals(numberStr)) {
            return Boolean.TRUE;
        } else {
            return Boolean.FALSE;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy