90f710fac73aec9f3c1da1dd642ffe332b981a1c
[mono.git] / mcs / class / System.XML / System.Xml.Serialization / XmlCustomFormatter.cs
1 //
2 // System.Xml.Serialization.XmlCustomFormatter.cs
3 //
4 // Author:
5 //   Tim Coleman (tim@timcoleman.com)
6 //
7 // Copyright (C) Tim Coleman, 2002
8 //
9
10 using System;
11 using System.Text;
12 using System.Xml;
13
14 namespace System.Xml.Serialization {
15         internal class XmlCustomFormatter {
16
17                 #region Methods
18
19                 [MonoTODO]
20                 internal static byte[] FromByteArrayBase64 (byte[] value)
21                 {
22                         throw new NotImplementedException ();
23                 }
24
25                 internal static string FromByteArrayHex (byte[] value)
26                 {
27                         StringBuilder output = new StringBuilder ();
28                         foreach (byte val in value)
29                                 output.Append (val.ToString ("X2"));
30                         return output.ToString ();
31                 }
32
33                 internal static string FromChar (char value)
34                 {
35                         return ((int) value).ToString ();
36                 }
37
38                 internal static string FromDate (DateTime value)
39                 {
40                         return XmlConvert.ToString (value, "yyyy-MM-dd");
41                 }
42
43                 internal static string FromDateTime (DateTime value)
44                 {
45                         return XmlConvert.ToString (value, "yyyy-MM-ddTHH:mm:ss.fffffffzzz");
46                 }
47
48                 internal static string FromTime (DateTime value)
49                 {
50                         return XmlConvert.ToString (value, "HH:mm:ss.fffffffzzz");
51                 }
52
53                 internal static string FromEnum (long value, string[] values, long[] ids)
54                 {
55                         int length = ids.Length;
56
57                         for (int i = 0; i < length; i ++) {
58                                 if (ids[i] == value) 
59                                         if (i >= values.Length)
60                                                 return String.Empty;
61                                         else
62                                                 return values[i].ToString ();
63                         }
64                         return value.ToString ();
65                 }
66
67                 internal static string FromXmlName (string name)
68                 {
69                         return XmlConvert.EncodeName (name);
70                 }
71
72                 internal static string FromXmlNCName (string ncName)
73                 {
74                         return XmlConvert.EncodeLocalName (ncName);
75                 }
76
77                 internal static string FromXmlNmToken (string nmToken)
78                 {
79                         return XmlConvert.EncodeNmToken (nmToken);
80                 }
81
82                 internal static string FromXmlNmTokens (string nmTokens)
83                 {
84                         StringBuilder output = new StringBuilder ();
85                         string [] tokens = nmTokens.Split (' ');
86                         foreach (string token in tokens)
87                                 output.Append (FromXmlNmToken (token));
88                         return output.ToString ();
89                 }
90
91                 internal static char ToChar (string value)
92                 {
93                         return (char) XmlConvert.ToUInt16 (value);
94                 }
95
96                 internal static DateTime ToDate (string value)
97                 {
98                         return ToDateTime (value);
99                 }
100
101                 internal static DateTime ToDateTime (string value)
102                 {
103                         return XmlConvert.ToDateTime (value);
104                 }
105
106                 internal static DateTime ToTime (string value)
107                 {
108                         return ToDateTime (value);
109                 }
110
111                 internal static string ToXmlName (string value)
112                 {
113                         return XmlConvert.DecodeName (value);
114                 }
115
116                 internal static string ToXmlNCName (string value)
117                 {
118                         return ToXmlName (value);
119                 }
120
121                 internal static string ToXmlNmToken (string value)
122                 {
123                         return ToXmlName (value);
124                 }
125
126                 internal static string ToXmlNmTokens (string value)
127                 {
128                         return ToXmlName (value);
129                 }
130
131                 #endregion // Methods
132         }
133 }