add compile.sh for the win32 sample
[mono-project.git] / tools / locale-builder / DateTimeFormatEntry.cs
blob03a7101b3aae9bba36b23979cf00c3c4be62e11d
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 FullDateTimePattern;
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 int Row;
45 public void AppendTableRow (StringBuilder builder)
47 builder.Append ("\t{");
48 builder.Append (EncodeStringIdx (FullDateTimePattern) + ", ");
49 builder.Append (EncodeStringIdx (LongDatePattern) + ", ");
50 builder.Append (EncodeStringIdx (ShortDatePattern) + ", ");
52 builder.Append (EncodeStringIdx (LongTimePattern) + ", ");
53 builder.Append (EncodeStringIdx (ShortTimePattern) + ", ");
55 builder.Append (EncodeStringIdx (YearMonthPattern) + ", ");
56 builder.Append (EncodeStringIdx (MonthDayPattern) + ", ");
58 builder.Append (EncodeStringIdx (AMDesignator) + ", ");
59 builder.Append (EncodeStringIdx (PMDesignator) + ", ");
61 AppendNames (builder, DayNames);
62 builder.Append (", ");
63 AppendNames (builder, AbbreviatedDayNames);
64 builder.Append (", ");
66 AppendNames (builder, MonthNames);
67 builder.Append (", ");
68 AbbreviatedMonthNames.Add (String.Empty); /* ALLWAYS ?? */
69 AppendNames (builder, AbbreviatedMonthNames);
70 builder.Append (", ");
72 builder.Append (CalendarWeekRule + ", ");
73 builder.Append (FirstDayOfWeek + ", ");
75 builder.Append (EncodeStringIdx (DateSeparator) + ", ");
76 builder.Append (EncodeStringIdx (TimeSeparator) + ", ");
78 AppendPatterns (builder, ShortDatePatterns);
79 builder.Append (',');
80 AppendPatterns (builder, LongDatePatterns);
81 builder.Append (',');
82 AppendPatterns (builder, ShortTimePatterns);
83 builder.Append (',');
84 AppendPatterns (builder, LongTimePatterns);
86 builder.Append ('}');
89 private void AppendPatterns (StringBuilder builder, ArrayList al)
91 string [] patterns = al.ToArray (typeof (string)) as string [];
92 builder.Append ('{');
93 for (int i = 0; i < patterns.Length; i++) {
94 string s = EncodeStringIdx (patterns [i]);
95 builder.Append (s);
96 if (i + 1 < patterns.Length)
97 builder.Append (',');
99 if (patterns.Length == 0)
100 builder.Append ('0');
101 builder.Append ('}');
104 public override string ToString ()
106 StringBuilder builder = new StringBuilder ();
107 AppendTableRow (builder);
108 return builder.ToString ();
111 private void AppendNames (StringBuilder builder, ArrayList names)
113 builder.Append ('{');
114 for (int i=0; i<names.Count; i++) {
115 builder.Append (EncodeStringIdx (names [i].ToString ()));
116 if (i+1 < names.Count)
117 builder.Append (", ");
119 builder.Append ("}");