/// <summary> /// Serialization method resolve instances to the constant /// DateFormat.Field values /// </summary> /// protected internal override Object ReadResolve() { if (calendarField != -1) { try { DateFormat.Field result = OfCalendarField(calendarField); if (result != null && this.Equals(result)) { return(result); } } catch (ArgumentException e) { // text.02=Unknown attribute throw new IOException("text.02"); //$NON-NLS-1$ } } else { if (this.Equals(TIME_ZONE)) { return(TIME_ZONE); } if (this.Equals(HOUR1)) { return(HOUR1); } if (this.Equals(HOUR_OF_DAY1)) { return(HOUR_OF_DAY1); } } // text.02=Unknown attribute throw new IOException("text.02"); //$NON-NLS-1$ }
private void Append(StringBuilder buffer, FieldPosition position, List <FieldPosition> fields, char format, int count) { int field = -1; int index = patternChars.IndexOf(format); if (index == -1) { // text.03=Unknown pattern character - '{0}' throw new ArgumentException("text.03" + format); //$NON-NLS-1$ } int beginPosition = buffer.Length; DateFormat.Field dateFormatField = null; System.Console.Out.WriteLine("index:" + index); switch (index) { case DateFormat.ERA_FIELD: dateFormatField = DateFormat.Field.ERA; buffer.Append(formatData.eras[calendar.Get(ILOG.J2CsMapping.Util.Calendar.ERA)]); break; case DateFormat.YEAR_FIELD: dateFormatField = DateFormat.Field.YEAR; int year = calendar.Get(ILOG.J2CsMapping.Util.Calendar.YEAR); if (count < 4) { AppendNumber(buffer, 2, year %= 100); } else { AppendNumber(buffer, count, year); } break; case DateFormat.MONTH_FIELD: dateFormatField = DateFormat.Field.MONTH; int month = calendar.Get(ILOG.J2CsMapping.Util.Calendar.MONTH); if (count <= 2) { AppendNumber(buffer, count, month + 1); } else if (count == 3) { buffer.Append(formatData.shortMonths[month]); } else { buffer.Append(formatData.months[month]); } break; case DateFormat.DATE_FIELD: dateFormatField = DateFormat.Field.DAY_OF_MONTH; field = ILOG.J2CsMapping.Util.Calendar.DATE; break; case DateFormat.HOUR_OF_DAY1_FIELD: // k dateFormatField = DateFormat.Field.HOUR_OF_DAY1; int hour = calendar.Get(ILOG.J2CsMapping.Util.Calendar.HOUR_OF_DAY); AppendNumber(buffer, count, (hour == 0) ? 24 : hour); break; case DateFormat.HOUR_OF_DAY0_FIELD: // H dateFormatField = DateFormat.Field.HOUR_OF_DAY0; field = ILOG.J2CsMapping.Util.Calendar.HOUR_OF_DAY; break; case DateFormat.MINUTE_FIELD: dateFormatField = DateFormat.Field.MINUTE; field = ILOG.J2CsMapping.Util.Calendar.MINUTE; break; case DateFormat.SECOND_FIELD: dateFormatField = DateFormat.Field.SECOND; field = ILOG.J2CsMapping.Util.Calendar.SECOND; break; case DateFormat.MILLISECOND_FIELD: dateFormatField = DateFormat.Field.MILLISECOND; int value_ren = calendar.Get(ILOG.J2CsMapping.Util.Calendar.MILLISECOND); AppendNumber(buffer, count, value_ren); break; case DateFormat.DAY_OF_WEEK_FIELD: dateFormatField = DateFormat.Field.DAY_OF_WEEK; int day = calendar.Get(ILOG.J2CsMapping.Util.Calendar.DAY_OF_WEEK); if (count < 4) { buffer.Append(formatData.shortWeekdays[day]); } else { buffer.Append(formatData.weekdays[day]); } break; case DateFormat.DAY_OF_YEAR_FIELD: dateFormatField = DateFormat.Field.DAY_OF_YEAR; field = ILOG.J2CsMapping.Util.Calendar.DAY_OF_YEAR; break; case DateFormat.DAY_OF_WEEK_IN_MONTH_FIELD: dateFormatField = DateFormat.Field.DAY_OF_WEEK_IN_MONTH; field = ILOG.J2CsMapping.Util.Calendar.DAY_OF_WEEK_IN_MONTH; break; case DateFormat.WEEK_OF_YEAR_FIELD: dateFormatField = DateFormat.Field.WEEK_OF_YEAR; field = ILOG.J2CsMapping.Util.Calendar.WEEK_OF_YEAR; break; case DateFormat.WEEK_OF_MONTH_FIELD: dateFormatField = DateFormat.Field.WEEK_OF_MONTH; field = ILOG.J2CsMapping.Util.Calendar.WEEK_OF_MONTH; break; case DateFormat.AM_PM_FIELD: dateFormatField = DateFormat.Field.AM_PM; buffer.Append(formatData.ampms[calendar.Get(ILOG.J2CsMapping.Util.Calendar.AM_PM)]); break; case DateFormat.HOUR1_FIELD: // h dateFormatField = DateFormat.Field.HOUR1; hour = calendar.Get(ILOG.J2CsMapping.Util.Calendar.HOUR); AppendNumber(buffer, count, (hour == 0) ? 12 : hour); break; case DateFormat.HOUR0_FIELD: // K dateFormatField = DateFormat.Field.HOUR0; field = ILOG.J2CsMapping.Util.Calendar.HOUR; break; case DateFormat.TIMEZONE_FIELD: // z dateFormatField = DateFormat.Field.TIME_ZONE; AppendTimeZone(buffer, count, true); break; case IBM.ICU.Text.DateFormat.TIMEZONE_RFC_FIELD: // Z dateFormatField = DateFormat.Field.TIME_ZONE; AppendTimeZone(buffer, count, false); break; } if (field != -1) { AppendNumber(buffer, count, calendar.Get(field)); } if (fields != null) { position = new FieldPosition(dateFormatField); position.SetBeginIndex(beginPosition); position.SetEndIndex(buffer.Length); fields.Add(position); } else { // Set to the first occurrence if (((Object)position.GetFieldAttribute() == (Object)dateFormatField || (position .GetFieldAttribute() == null && position.GetField() == index)) && position.GetEndIndex() == 0) { position.SetBeginIndex(beginPosition); position.SetEndIndex(buffer.Length); } } }