hefeixia
2021-02-18 5b8c95c760840f09910730943b21391e47187315
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
131
132
133
134
135
136
137
138
139
140
141
package frame.variant.translator;
 
import java.math.BigDecimal;
import java.util.Date;
 
import frame.variant.Value;
 
public abstract class ITranslator {
 
    protected String format;
    
    public ITranslator() {
        
    }
    
    public abstract String toString(Object value) throws Exception;
    
    public String toString(Object value, String defaultValue) {
        try {
            return toString(value);
        }
        catch (Exception e) {
            return defaultValue;
        }
    }
    
    public abstract String toSqlString(Object value) throws Exception;
    
    public String toSqlString(String prefix, Object value, String suffix) throws Exception    {
        if (value == null) {
            return "null";
        }
        
        String result = toSqlString(value);
        
        if (prefix != null) {
            result = result + prefix;
        }
        
        if (suffix != null) {
            result = result + suffix;
        }
        
        return "'" + result + "'";
    }
 
    public abstract String toJSONString(Object value) throws Exception;
    
    public abstract String toSchemaString(Object value) throws Exception;
    
    public abstract Integer toInteger(Object value) throws Exception;
 
    public Integer toInteger(Object value, Integer defaultValue) {
        if (value == null) {
            return defaultValue;
        }
        
        try {
            return toInteger(value);
        }
        catch (Exception e) {
            return defaultValue;
        }
    }
    
    public abstract Double toDouble(Object value)throws Exception;
    
    public Double toDouble(Object value, Double defaultValue) {
        if (value == null) {
            return defaultValue;
        }
        
        try {
            return toDouble(value);
        }
        catch (Exception e) {
            return defaultValue;
        }
    }
    
    public abstract BigDecimal toBigDecimal(Object value) throws Exception;
 
    public BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) {
        try {
            return toBigDecimal(value);
        }
        catch (Exception e) {
            return defaultValue;
        }
    }
    
    public abstract Boolean toBoolean(Object value) throws Exception;
    
    public Boolean toBoolean(Object value, boolean defaultValue) {
        try {
            return toBoolean(value);
        }
        catch (Exception e) {
            return defaultValue;
        }
    }
 
    public abstract Date toDate(Object value) throws Exception;
    
    public Date toDate(Object value, Date defaultValue) {
        try {
            return toDate(value);
        }
        catch (Exception e) {
            return defaultValue;
        }
    }
 
    public abstract Object toTranslatorTypeValue(Object value) throws Exception;;
    
    public abstract Object loadObjectFrom(String value) throws Exception;
    
    public Object loadObjectFrom(String value, Object defaultValue) {
        try {
            return loadObjectFrom(value);
        }
        catch (Exception e) {
            return defaultValue;
        }
    }
    
    public abstract Value loadVariantFrom(String value) throws Exception;
    
    public abstract Value loadVariantFrom(String value, Object defaultValue);
    
    public abstract Class<?> getDataClass();
    
    public void setFormat(String format) {
        this.format = format;
    }
    
    public String getFormat() {
        return format;
    }
 
}