package com.firefly.utils;

abstract public class VerifyUtils {

    public static boolean isNumeric(String str) {
        if (isEmpty(str))
            return false;

        char first = str.charAt(0);
        int i = first == '-' ? 1 : 0;
        for (; i < str.length(); i++) {
            if (!isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }

    public static boolean isInteger(String str) {
        if (isEmpty(str))
            return false;

        char first = str.charAt(0);
        int i = first == '-' ? 1 : 0;
        for (; i < str.length(); i++) {
            if (!isDigit(str.charAt(i))) {
                return false;
            }
        }

        Long t = Long.parseLong(str);
        return t <= Integer.MAX_VALUE && t >= Integer.MIN_VALUE;
    }

    public static boolean isLong(String str) {
        if (isEmpty(str))
            return false;

        char first = str.charAt(0);
        char end = str.charAt(str.length() - 1);
        boolean j = end == 'l' || end == 'L';
        int i = first == '-' ? 1 : 0;
        int len = j ? str.length() - 1 : str.length();
        for (; i < len; i++) {
            if (!isDigit(str.charAt(i))) {
                return false;
            }
        }

        if (!j) {
            Long t = Long.parseLong(str);
            return t > Integer.MAX_VALUE || t < Integer.MIN_VALUE;
        } else {
            return true;
        }
    }

    public static boolean isFloat(String str) {
        if (isEmpty(str))
            return false;

        char end = str.charAt(str.length() - 1);
        if (!(end == 'f' || end == 'F'))
            return false;

        int point = 0;
        int i = str.charAt(0) == '-' ? 1 : 0;
        for (; i < str.length() - 1; i++) {
            char c = str.charAt(i);
            if (c == '.') {
                point++;
            } else if (!isDigit(c)) {
                return false;
            }
        }
        return point == 1 || point == 0;
    }

    public static boolean isDouble(String str) {
        if (isEmpty(str))
            return false;

        int point = 0;
        int i = str.charAt(0) == '-' ? 1 : 0;
        for (; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c == '.') {
                point++;
            } else if (!isDigit(c)) {
                return false;
            }
        }

        return point == 1;
    }

    public static boolean isDigit(char ch) {
        return ch >= '0' && ch <= '9';
    }

    public static boolean isNotEmpty(Long o) {
        return o != null && StringUtils.hasText(o.toString());
    }

    public static boolean isNotEmpty(Integer o) {
        return o != null && StringUtils.hasText(o.toString());
    }

    public static boolean isNotEmpty(String o) {
        return StringUtils.hasText(o);
    }

    public static boolean isEmpty(Long o) {
        return !isNotEmpty(o);
    }

    public static boolean isEmpty(Integer o) {
        return !isNotEmpty(o);
    }

    public static boolean isEmpty(String o) {
        return !isNotEmpty(o);
    }
}

@@ -130,32 +130,34 @@
 f (isEmpty(str))
+ %7B
 %0D%0A            re
@@ -160,32 +160,43 @@
   return false;%0D
+%0A        %7D%0D
 %0A%0D%0A        char 
@@ -499,32 +499,34 @@
 f (isEmpty(str))
+ %7B
 %0D%0A            re
@@ -529,32 +529,43 @@
   return false;%0D
+%0A        %7D%0D
 %0A%0D%0A        char 
@@ -771,33 +771,33 @@
    %7D%0D%0A%0D%0A        
-L
+l
 ong t = Long.par
@@ -950,32 +950,34 @@
 f (isEmpty(str))
+ %7B
 %0D%0A            re
@@ -980,32 +980,43 @@
   return false;%0D
+%0A        %7D%0D
 %0A%0D%0A        char 
@@ -1626,32 +1626,34 @@
 f (isEmpty(str))
+ %7B
 %0D%0A            re
@@ -1656,32 +1656,43 @@
   return false;%0D
+%0A        %7D%0D
 %0A%0D%0A        char 
@@ -1768,16 +1768,18 @@
 == 'F'))
+ %7B
 %0D%0A      
@@ -1790,32 +1790,43 @@
   return false;%0D
+%0A        %7D%0D
 %0A%0D%0A        int p
@@ -2242,16 +2242,18 @@
 ty(str))
+ %7B
 %0D%0A      
@@ -2272,16 +2272,27 @@
  false;%0D
+%0A        %7D%0D
 %0A%0D%0A     
@@ -2761,138 +2761,18 @@
 pty(
-Long o) %7B%0D%0A        return o != null && StringUtils.hasText(o.toString());%0D%0A    %7D%0D%0A%0D%0A    public static boolean isNotEmpty(Integer o
+String str
 ) %7B%0D
@@ -2790,21 +2790,8 @@
 turn
- o != null &&
  Str
@@ -2811,20 +2811,11 @@
 ext(
-o.toString()
+str
 );%0D%0A
@@ -2843,35 +2843,32 @@
 tatic boolean is
-Not
 Empty(String o) 
@@ -2868,313 +2868,46 @@
 ing 
-o) %7B%0D%0A        return StringUtils.hasText(o);%0D%0A    %7D%0D%0A%0D%0A    public static boolean isEmpty(Long o) %7B%0D%0A        return !isNotEmpty(o);%0D%0A    %7D%0D%0A%0D%0A    public static boolean isEmpty(Integer o) %7B%0D%0A        return !isNotEmpty(o);%0D%0A    %7D%0D%0A%0D%0A    public static boolean isEmpty(String o) %7B%0D%0A        return !isNotEmpty(o
+str) %7B%0D%0A        return !isNotEmpty(str
 );%0D%0A

clean up codes