- Try to fix the msvc build.
[mono/afaerber.git] / tools / locale-builder / DateTimeFormatEntry.cs
blob0c8fbca34819b5ddf987dd5d7fc67ee004e861a1
1 //
2 // Mono.Tools.LocaleBuilder.DateTimeFormatEntry
3 //
4 // Author(s):
5 // Jackson Harper (jackson@ximian.com)
6 //
7 // (C) 2004, Novell, Inc (http://www.novell.com)
8 //
11 using System;
12 using System.Text;
13 using System.Collections;
15 namespace Mono.Tools.LocaleBuilder {
17 public class DateTimeFormatEntry : Entry {
19 public string CalendarType;
20 public ArrayList AbbreviatedDayNames = new ArrayList ();
21 public ArrayList AbbreviatedMonthNames = new ArrayList ();
22 public string AMDesignator;
23 public int CalendarWeekRule;
24 public string DateSeparator;
25 public ArrayList DayNames = new ArrayList ();
26 public int FirstDayOfWeek;
27 public string RawFullDateTimePattern;
28 public string LongDatePattern;
29 public string LongTimePattern;
30 public string MonthDayPattern;
31 public ArrayList MonthNames = new ArrayList ();
32 public string PMDesignator;
33 public string ShortDatePattern;
34 public string ShortTimePattern;
35 public string TimeSeparator;
36 public string YearMonthPattern;
37 public int [] OptionalCalendars = new int [5];
38 public ArrayList ShortDatePatterns = new ArrayList (14);
39 public ArrayList LongDatePatterns = new ArrayList (8);
40 public ArrayList ShortTimePatterns = new ArrayList (5);
41 public ArrayList LongTimePatterns = new ArrayList (6);
43 public string FullDateTimePattern {
44 get { return String.Format (RawFullDateTimePattern, LongTimePattern, LongDatePattern); }
47 public int Row;
49 public void AppendTableRow (StringBuilder builder)
51 builder.Append ("\t{");
52 builder.Append (EncodeStringIdx (FullDateTimePattern) + ", ");
53 builder.Append (EncodeStringIdx (LongDatePattern) + ", ");
54 builder.Append (EncodeStringIdx (ShortDatePattern) + ", ");
56 builder.Append (EncodeStringIdx (LongTimePattern) + ", ");
57 builder.Append (EncodeStringIdx (ShortTimePattern) + ", ");
59 builder.Append (EncodeStringIdx (YearMonthPattern) + ", ");
60 builder.Append (EncodeStringIdx (MonthDayPattern) + ", ");
62 builder.Append (EncodeStringIdx (AMDesignator) + ", ");
63 builder.Append (EncodeStringIdx (PMDesignator) + ", ");
65 AppendNames (builder, DayNames);
66 builder.Append (", ");
67 AppendNames (builder, AbbreviatedDayNames);
68 builder.Append (", ");
70 AppendNames (builder, MonthNames);
71 builder.Append (", ");
72 AppendNames (builder, AbbreviatedMonthNames);
73 builder.Append (", ");
75 builder.Append (CalendarWeekRule + ", ");
76 builder.Append (FirstDayOfWeek + ", ");
78 builder.Append (EncodeStringIdx (DateSeparator) + ", ");
79 builder.Append (EncodeStringIdx (TimeSeparator) + ", ");
81 AppendPatterns (builder, ShortDatePatterns);
82 builder.Append (',');
83 AppendPatterns (builder, LongDatePatterns);
84 builder.Append (',');
85 AppendPatterns (builder, ShortTimePatterns);
86 builder.Append (',');
87 AppendPatterns (builder, LongTimePatterns);
89 builder.Append ('}');
92 private void AppendPatterns (StringBuilder builder, ArrayList al)
94 string [] patterns = al.ToArray (typeof (string)) as string [];
95 builder.Append ('{');
96 for (int i = 0; i < patterns.Length; i++) {
97 string s = EncodeStringIdx (patterns [i]);
98 builder.Append (s);
99 if (i + 1 < patterns.Length)
100 builder.Append (',');
102 if (patterns.Length == 0)
103 builder.Append ('0');
104 builder.Append ('}');
107 public override string ToString ()
109 StringBuilder builder = new StringBuilder ();
110 AppendTableRow (builder);
111 return builder.ToString ();
114 private void AppendNames (StringBuilder builder, ArrayList names)
116 builder.Append ('{');
117 for (int i=0; i<names.Count; i++) {
118 builder.Append (EncodeStringIdx (names [i].ToString ()));
119 if (i+1 < names.Count)
120 builder.Append (", ");
122 builder.Append ("}");