Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ConstNode.cs
Go to the documentation of this file.
4
5namespace System.Data;
6
7internal sealed class ConstNode : ExpressionNode
8{
9 internal readonly object _val;
10
15
17 : base(table)
18 {
19 switch (type)
20 {
21 case ValueType.Null:
23 break;
24 case ValueType.Numeric:
26 break;
27 case ValueType.Decimal:
29 break;
30 case ValueType.Float:
32 break;
33 case ValueType.Bool:
35 break;
36 case ValueType.Str:
37 if (fParseQuotes)
38 {
39 _val = ((string)constant).Replace("''", "'");
40 }
41 else
42 {
44 }
45 break;
46 case ValueType.Date:
48 break;
49 default:
50 _val = constant;
51 break;
52 }
53 }
54
55 internal override void Bind(DataTable table, List<DataColumn> list)
56 {
58 }
59
60 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
61 internal override object Eval()
62 {
63 return _val;
64 }
65
66 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
67 internal override object Eval(DataRow row, DataRowVersion version)
68 {
69 return Eval();
70 }
71
72 [RequiresUnreferencedCode("Members from serialized types may be trimmed if not referenced directly.")]
73 internal override object Eval(int[] recordNos)
74 {
75 return Eval();
76 }
77
78 internal override bool IsConstant()
79 {
80 return true;
81 }
82
83 internal override bool IsTableConstant()
84 {
85 return true;
86 }
87
88 internal override bool HasLocalAggregate()
89 {
90 return false;
91 }
92
93 internal override bool HasRemoteAggregate()
94 {
95 return false;
96 }
97
98 internal override ExpressionNode Optimize()
99 {
100 return this;
101 }
102
103 private object SmallestDecimal(object constant)
104 {
105 if (constant == null)
106 {
107 return 0.0;
108 }
109 if (constant is string s)
110 {
111 if (decimal.TryParse(s, NumberStyles.Number, NumberFormatInfo.InvariantInfo, out var result))
112 {
113 return result;
114 }
115 if (double.TryParse(s, NumberStyles.Float | NumberStyles.AllowThousands, NumberFormatInfo.InvariantInfo, out var result2))
116 {
117 return result2;
118 }
119 }
121 {
122 try
123 {
125 }
126 catch (ArgumentException e)
127 {
129 }
130 catch (FormatException e2)
131 {
133 }
135 {
137 }
138 catch (OverflowException e4)
139 {
141 }
142 try
143 {
145 }
146 catch (ArgumentException e5)
147 {
149 }
150 catch (FormatException e6)
151 {
153 }
155 {
157 }
158 catch (OverflowException e8)
159 {
161 }
162 }
163 return constant;
164 }
165
166 private object SmallestNumeric(object constant)
167 {
168 if (constant == null)
169 {
170 return 0;
171 }
172 if (constant is string s)
173 {
174 if (int.TryParse(s, NumberStyles.Integer, NumberFormatInfo.InvariantInfo, out var result))
175 {
176 return result;
177 }
178 if (long.TryParse(s, NumberStyles.Integer, NumberFormatInfo.InvariantInfo, out var result2))
179 {
180 return result2;
181 }
182 if (double.TryParse(s, NumberStyles.Float | NumberStyles.AllowThousands, NumberFormatInfo.InvariantInfo, out var result3))
183 {
184 return result3;
185 }
186 }
188 {
189 try
190 {
192 }
193 catch (ArgumentException e)
194 {
196 }
197 catch (FormatException e2)
198 {
200 }
202 {
204 }
205 catch (OverflowException e4)
206 {
208 }
209 try
210 {
212 }
213 catch (ArgumentException e5)
214 {
216 }
217 catch (FormatException e6)
218 {
220 }
222 {
224 }
225 catch (OverflowException e8)
226 {
228 }
229 try
230 {
232 }
233 catch (ArgumentException e9)
234 {
236 }
237 catch (FormatException e10)
238 {
240 }
242 {
244 }
245 catch (OverflowException e12)
246 {
248 }
249 }
250 return constant;
251 }
252}
static double ToDouble(object? value)
Definition Convert.cs:1991
static bool ToBoolean([NotNullWhen(true)] object? value)
Definition Convert.cs:508
static readonly DBNull Value
Definition DBNull.cs:8
override object Eval(DataRow row, DataRowVersion version)
Definition ConstNode.cs:67
override ExpressionNode Optimize()
Definition ConstNode.cs:98
override bool HasRemoteAggregate()
Definition ConstNode.cs:93
ConstNode(DataTable table, ValueType type, object constant)
Definition ConstNode.cs:11
object SmallestDecimal(object constant)
Definition ConstNode.cs:103
override void Bind(DataTable table, List< DataColumn > list)
Definition ConstNode.cs:55
override bool IsConstant()
Definition ConstNode.cs:78
object SmallestNumeric(object constant)
Definition ConstNode.cs:166
readonly object _val
Definition ConstNode.cs:9
override object Eval()
Definition ConstNode.cs:61
override bool HasLocalAggregate()
Definition ConstNode.cs:88
override object Eval(int[] recordNos)
Definition ConstNode.cs:73
ConstNode(DataTable table, ValueType type, object constant, bool fParseQuotes)
Definition ConstNode.cs:16
override bool IsTableConstant()
Definition ConstNode.cs:83
static Exception TraceExceptionWithoutRethrow(Exception e)
void BindTable(DataTable table)
static CultureInfo InvariantCulture
static DateTime Parse(string s)
Definition DateTime.cs:919