P15GEN2\59518
2025-10-10 9f6890646993d16260d4201d613c092132856127
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package foundation.value;
 
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
import foundation.server.config.DBaseType;
import foundation.util.Util;
 
public class LongTranslator extends ITranslator {
    
    private static Pattern pattern = Pattern.compile("^-?\\d+?([eE][+-]?\\d+)?$");
 
    @Override
    public Long load(Object value){
        if (Util.isEmpty(value) || value == null || value == ValueType.Null) {
            return null;
        }
        
        if (value instanceof Long) {
            return (Long)value;
        }
        else if (value instanceof Integer) {
            return ((Integer)value).longValue();
        }
        else if (value instanceof BigInteger) {
            return ((BigInteger)value).longValue();
        }
        
        return Long.valueOf(value.toString());
    }
    
    @Override
    public Long load(String value) throws Exception {
        if (Util.isEmpty(value)) {
            return null;
        }
        
        return Long.valueOf(value.toString());
    }
    
    public String toString(Object value) throws Exception {
        if (value == null || value == ValueType.Null) {
            return null;
        }
        
        return value.toString();
    }
 
    @Override
    public String toSqlString(DBaseType dbaseType, Object value) throws Exception {
        if (value == null || value == ValueType.Null) {
            return "null";
        }
        
        return value.toString();
    }
 
    @Override
    public String toJSONString(Object value) throws Exception {
        if (value == null || value == ValueType.Null) {
            return "null";
        }
        
        return value.toString();
    }
    
    @Override
    public String toSchemaString(Object value) throws Exception {
        if (value == null || value == ValueType.Null) {
            return "";
        }
        
        return value.toString();
    }
 
    private Long toLong(Object value) {
        if (value == null || value == ValueType.Null) {
            return null;
        }
        
        if (value instanceof Long) {
            return (Long)value;
        }
        else if (value instanceof Integer) {
            return ((Integer)value).longValue();
        }
        else if (value instanceof BigInteger) {
            return ((BigInteger)value).longValue();
        }
        else if (value instanceof BigDecimal) {
            try {
                return ((BigDecimal)value).longValue();
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
        else if (value instanceof Double) {
            return ((Double)value).longValue();
        }
        else if (value instanceof String) {
            return Long.valueOf((String)value);
        }
    
        return Long.valueOf(value.toString());
    }
 
    @Override
    public Object toTranslatorTypeValue(Object value) throws Exception {
        return (Long)value;
    }
 
    @Override
    public String checkType(Object object) {
        String value = String.valueOf(object);
        Matcher matcher = pattern.matcher(value);
        
        if (matcher.find()) {
            return null;
        }
        
        return "数字无法识别";
    }
    
    @Override
    public Class<?> getDataClass() {
        return Long.class;
    }
}