2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / tools / locale-builder / DateTimeFormatEntry.cs
index c13f77ad83d07cb96dbf1d0b03e02aafd6951ae4..03a7101b3aae9bba36b23979cf00c3c4be62e11d 100644 (file)
@@ -35,24 +35,28 @@ namespace Mono.Tools.LocaleBuilder {
                 public string TimeSeparator;
                 public string YearMonthPattern;
                 public int [] OptionalCalendars = new int [5];
-                
+                public ArrayList ShortDatePatterns = new ArrayList (14);
+                public ArrayList LongDatePatterns = new ArrayList (8);
+                public ArrayList ShortTimePatterns = new ArrayList (5);
+                public ArrayList LongTimePatterns = new ArrayList (6);
+
                 public int Row;
 
                 public void AppendTableRow (StringBuilder builder)
                 {
                         builder.Append ("\t{");
-                        builder.Append ("\"" + EncodeString (FullDateTimePattern) + "\", ");
-                        builder.Append ("\"" + EncodeString (LongDatePattern) + "\", ");
-                        builder.Append ("\"" + EncodeString (ShortDatePattern) + "\", ");
+                        builder.Append (EncodeStringIdx (FullDateTimePattern) + ", ");
+                        builder.Append (EncodeStringIdx (LongDatePattern) + ", ");
+                        builder.Append (EncodeStringIdx (ShortDatePattern) + ", ");
 
-                        builder.Append ("\"" + EncodeString (LongTimePattern) + "\", ");
-                        builder.Append ("\"" + EncodeString (ShortTimePattern) + "\", ");
+                        builder.Append (EncodeStringIdx (LongTimePattern) + ", ");
+                        builder.Append (EncodeStringIdx (ShortTimePattern) + ", ");
 
-                        builder.Append ("\"" + EncodeString (YearMonthPattern) + "\", ");
-                        builder.Append ("\"" + EncodeString (MonthDayPattern) + "\", ");
+                        builder.Append (EncodeStringIdx (YearMonthPattern) + ", ");
+                        builder.Append (EncodeStringIdx (MonthDayPattern) + ", ");
 
-                        builder.Append ("\"" + EncodeString (AMDesignator) + "\", ");
-                        builder.Append ("\"" + EncodeString (PMDesignator) + "\", ");
+                        builder.Append (EncodeStringIdx (AMDesignator) + ", ");
+                        builder.Append (EncodeStringIdx (PMDesignator) + ", ");
 
                         AppendNames (builder, DayNames);
                         builder.Append (", ");
@@ -68,9 +72,32 @@ namespace Mono.Tools.LocaleBuilder {
                         builder.Append (CalendarWeekRule + ", ");
                         builder.Append (FirstDayOfWeek + ", ");
                         
-                        builder.Append ("\"" + EncodeString (DateSeparator) + "\", ");
-                        builder.Append ("\"" + EncodeString (TimeSeparator) + "\"");
+                        builder.Append (EncodeStringIdx (DateSeparator) + ", ");
+                        builder.Append (EncodeStringIdx (TimeSeparator) + ", ");
+
+                        AppendPatterns (builder, ShortDatePatterns);
+                        builder.Append (',');
+                        AppendPatterns (builder, LongDatePatterns);
+                        builder.Append (',');
+                        AppendPatterns (builder, ShortTimePatterns);
+                        builder.Append (',');
+                        AppendPatterns (builder, LongTimePatterns);
+
+                        builder.Append ('}');
+                }
 
+                private void AppendPatterns (StringBuilder builder, ArrayList al)
+                {
+                        string [] patterns = al.ToArray (typeof (string)) as string [];
+                        builder.Append ('{');
+                        for (int i = 0; i < patterns.Length; i++) {
+                                string s = EncodeStringIdx (patterns [i]);
+                                builder.Append (s);
+                                if (i + 1 < patterns.Length)
+                                        builder.Append (',');
+                        }
+                        if (patterns.Length == 0)
+                                builder.Append ('0');
                         builder.Append ('}');
                 }
 
@@ -85,7 +112,7 @@ namespace Mono.Tools.LocaleBuilder {
                 {
                         builder.Append ('{');
                         for (int i=0; i<names.Count; i++) {
-                                builder.Append ("\"" + EncodeString (names [i].ToString ()) + "\"");
+                                builder.Append (EncodeStringIdx (names [i].ToString ()));
                                 if (i+1 < names.Count)
                                         builder.Append (", ");
                         }