示例#1
0
        /// <summary>
        /// Formats the specified object using the rules of this MessageFormat and
        /// returns an AttributedCharacterIterator with the formatted message and
        /// attributes. The AttributedCharacterIterator returned also includes the
        /// attributes from the formats of this MessageFormat.
        /// </summary>
        ///
        /// <param name="object">the object to format</param>
        /// <returns>an AttributedCharacterIterator with the formatted message and
        /// attributes</returns>
        /// <exception cref="IllegalArgumentException">when the arguments in the object array cannot be formattedby this Format</exception>
        public override ILOG.J2CsMapping.Text.AttributedCharacterIterator FormatToCharacterIterator(Object obj0)
        {
            if (obj0 == null)
            {
                throw new NullReferenceException();
            }

            StringBuilder         buffer = new StringBuilder();
            List <FieldContainer> fields = new List <FieldContainer>();

            // format the message, and find fields
            FormatImpl((Object[])obj0, buffer, new FieldPosition(0), fields);

            // create an AttributedString with the formatted buffer
            ILOG.J2CsMapping.Text.AttributedString // create an AttributedString with the formatted buffer
                al = new ILOG.J2CsMapping.Text.AttributedString(buffer.ToString());

            // add MessageFormat field attributes and values to the AttributedString
            for (int i = 0; i < fields.Count; i++)
            {
                MessageFormat.FieldContainer fc = fields[i];
                al.AddAttribute(fc.attribute, fc.value_ren, fc.start, fc.end);
            }

            // return the CharacterIterator from AttributedString
            return(al.GetIterator());
        }
 internal AttributedIterator(AttributedString attrString_0)
 {
     this.attrString = attrString_0;
     begin           = 0;
     end             = attrString_0.text.Length;
     offset          = 0;
 }
 internal AttributedIterator(AttributedString attrString_0,
                             AttributedCharacterIterator_Constants.Attribute[] attributes, int begin_1,
                             int end_2)
 {
     if (begin_1 < 0 || end_2 > attrString_0.text.Length || begin_1 > end_2)
     {
         throw new ArgumentException();
     }
     this.begin      = begin_1;
     this.end        = end_2;
     offset          = begin_1;
     this.attrString = attrString_0;
     if (attributes != null)
     {
         HashedSet <AttributedCharacterIterator_Constants.Attribute> set = new HashedSet <AttributedCharacterIterator_Constants.Attribute>(
             (attributes.Length * 4 / 3) + 1);
         for (int i = attributes.Length; --i >= 0;)
         {
             ILOG.J2CsMapping.Collections.Generics.Collections.Add(set, attributes[i]);
         }
         attributesAllowed = set;
     }
 }
        private ILOG.J2CsMapping.Text.AttributedCharacterIterator FormatToCharacterIteratorImpl(DateTime date)
        {
            StringBuilder        buffer = new StringBuilder();
            List <FieldPosition> fields = new List <FieldPosition>();

            // format the date, and find fields
            FormatImpl(date, buffer, null, fields);

            // create and AttributedString with the formatted buffer
            ILOG.J2CsMapping.Text.AttributedString             // create and AttributedString with the formatted buffer
                al = new ILOG.J2CsMapping.Text.AttributedString(buffer.ToString());

            // add DateFormat field attributes to the AttributedString
            for (int i = 0; i < fields.Count; i++)
            {
                FieldPosition pos       = fields[i];
                Format.Field  attribute = pos.GetFieldAttribute();
                al.AddAttribute(attribute, attribute, pos.GetBeginIndex(),
                                pos.GetEndIndex());
            }

            // return the CharacterIterator from AttributedString
            return(al.GetIterator());
        }