2 // Mono.Tools.LocaleBuilder.DateTimeFormatEntry
5 // Jackson Harper (jackson@ximian.com)
7 // (C) 2004, Novell, Inc (http://www.novell.com)
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);
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
);
80 AppendPatterns (builder
, LongDatePatterns
);
82 AppendPatterns (builder
, ShortTimePatterns
);
84 AppendPatterns (builder
, LongTimePatterns
);
89 private void AppendPatterns (StringBuilder builder
, ArrayList al
)
91 string [] patterns
= al
.ToArray (typeof (string)) as string [];
93 for (int i
= 0; i
< patterns
.Length
; i
++) {
94 string s
= EncodeStringIdx (patterns
[i
]);
96 if (i
+ 1 < patterns
.Length
)
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 ("}");