Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ConvertToType()

static XmlAtomicValue System.Xml.Xsl.Runtime.XsltConvert.ConvertToType ( XmlAtomicValue value,
XmlQueryType destinationType )
inlinestaticpackage

Definition at line 241 of file XsltConvert.cs.

242 {
243 switch (destinationType.TypeCode)
244 {
245 case XmlTypeCode.Boolean:
246 {
247 XmlTypeCode typeCode = value.XmlType.TypeCode;
248 if ((uint)(typeCode - 12) <= 1u || typeCode == XmlTypeCode.Double)
249 {
250 return new XmlAtomicValue(destinationType.SchemaType, ToBoolean(value));
251 }
252 break;
253 }
254 case XmlTypeCode.DateTime:
255 if (value.XmlType.TypeCode == XmlTypeCode.String)
256 {
257 return new XmlAtomicValue(destinationType.SchemaType, ToDateTime(value.Value));
258 }
259 break;
260 case XmlTypeCode.Decimal:
261 if (value.XmlType.TypeCode == XmlTypeCode.Double)
262 {
263 return new XmlAtomicValue(destinationType.SchemaType, ToDecimal(value.ValueAsDouble));
264 }
265 break;
266 case XmlTypeCode.Double:
267 switch (value.XmlType.TypeCode)
268 {
269 case XmlTypeCode.String:
270 case XmlTypeCode.Boolean:
271 case XmlTypeCode.Double:
272 return new XmlAtomicValue(destinationType.SchemaType, ToDouble(value));
273 case XmlTypeCode.Decimal:
274 return new XmlAtomicValue(destinationType.SchemaType, ToDouble((decimal)value.ValueAs(DecimalType, null)));
275 case XmlTypeCode.Long:
276 case XmlTypeCode.Int:
277 return new XmlAtomicValue(destinationType.SchemaType, ToDouble(value.ValueAsLong));
278 }
279 break;
280 case XmlTypeCode.Long:
281 case XmlTypeCode.Int:
282 if (value.XmlType.TypeCode == XmlTypeCode.Double)
283 {
284 return new XmlAtomicValue(destinationType.SchemaType, ToLong(value.ValueAsDouble));
285 }
286 break;
287 case XmlTypeCode.String:
288 switch (value.XmlType.TypeCode)
289 {
290 case XmlTypeCode.String:
291 case XmlTypeCode.Boolean:
292 case XmlTypeCode.Double:
293 return new XmlAtomicValue(destinationType.SchemaType, ToString(value));
294 case XmlTypeCode.DateTime:
295 return new XmlAtomicValue(destinationType.SchemaType, ToString(value.ValueAsDateTime));
296 }
297 break;
298 }
299 return value;
300 }
static bool ToBoolean(XPathItem item)
static decimal ToDecimal(double value)
static readonly Type DecimalType
static double ToDouble(string value)
static DateTime ToDateTime(string value)
static long ToLong(double value)

References System.Xml.Xsl.Runtime.XsltConvert.DecimalType, System.Xml.Xsl.Runtime.XsltConvert.ToBoolean(), System.Xml.Xsl.Runtime.XsltConvert.ToDateTime(), System.Xml.Xsl.Runtime.XsltConvert.ToDecimal(), System.Xml.Xsl.Runtime.XsltConvert.ToDouble(), System.Xml.Xsl.Runtime.XsltConvert.ToLong(), System.ToString, and System.value.

Referenced by System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.FoldXsltConvert().