/// <summary>
 /// Escribe el largo de los datos del campo en el contexto de
 /// formateo del mensaje.
 /// </summary>
 /// <param name="component">
 /// Es el componente de mensajería del que se está escribiendo
 /// el largo de sus datos.
 /// </param>
 /// <param name="dataLength">
 /// Es el largo de los datos del componente (puede diferir del largo
 /// de los datos obtenidos de <paramref name="component"/>, pues pueden
 /// estar rellenados)
 /// </param>
 /// <param name="encodedLength">
 /// Es el largo de los datos codificados.
 /// </param>
 /// <param name="formatterContext">
 /// Es el contexto de formateo del mensaje.
 /// </param>
 /// <exception cref="MessagingException">
 /// El largo de los datos no concuerda con el largo conocido por
 /// este administrador.
 /// </exception>
 public override void WriteLength(MessagingComponent component,
                                  int dataLength, int encodedLength, ref FormatterContext formatterContext)
 {
     if (dataLength != MaximumLength)
     {
         throw new ArgumentOutOfRangeException("dataLength", dataLength,
                                               SR.InsufficientDataMoreIsRequired(MaximumLength));
     }
 }
Example #2
0
        /// <summary>
        /// Retorna la representación XML en una cadena de caracteres de un campo
        /// de mensaje.
        /// </summary>
        /// <param name="renderingMap">
        /// Es el mapa de todos los objetos que representan objetos. Vea log4net.
        /// </param>
        /// <param name="component">
        /// Es el campo a ser representado en XML.
        /// </param>
        /// <param name="indent">
        /// Es la indentación a emplear en la representación XML.
        /// </param>
        /// <returns>
        /// Retorna una cadena de caracteres con la representación en XML
        /// del campo de mensaje.
        /// </returns>
        public override string DoRender(RendererMap renderingMap,
                                        MessagingComponent component, string indent)
        {
            if (!(component is Field))
            {
                throw new ArgumentException(SR.ComponentIsNotAField, "component");
            }

            Field         field  = ( Field)component;
            StringBuilder render = new StringBuilder();

            render.Append(indent);
            render.Append("<");
            render.Append(MessagingComponentXmlRendering.XmlFieldTag);
            render.Append(" ");
            render.Append(MessagingComponentXmlRendering.XmlNumberAttr);
            render.Append("=\"");
            render.Append(field.FieldNumber.ToString(CultureInfo.CurrentCulture));
            render.Append("\" ");
            render.Append(MessagingComponentXmlRendering.XmlTypeAttr);
            render.Append("=\"");

            if (field.Value is MessagingComponent)
            {
                render.Append(MessagingComponentXmlRendering.XmlComponentVal);
                render.Append("\">");
                render.Append(Environment.NewLine);
                render.Append((( MessagingComponent)(field.Value)).XmlRendering(
                                  renderingMap).DoRender(renderingMap,
                                                         (( MessagingComponent)(field.Value)), indent + "   "));
                render.Append(indent);
                render.Append("</");
                render.Append(MessagingComponentXmlRendering.XmlFieldTag);
                render.Append(">");
            }
            else
            {
                if (field is StringField)
                {
                    render.Append(MessagingComponentXmlRendering.XmlStringVal);
                }
                else
                {
                    render.Append(MessagingComponentXmlRendering.XmlBinaryVal);
                }
                render.Append("\" ");
                render.Append(MessagingComponentXmlRendering.XmlValueAttr);
                render.Append("=\"");
                render.Append(field.ToString());
                render.Append("\" />");
            }
            render.Append(Environment.NewLine);

            return(render.ToString());
        }
        /// <summary>
        /// Escribe el largo de los datos del campo en el contexto de
        /// formateo del mensaje.
        /// </summary>
        /// <param name="component">
        /// Es el componente de mensajería del que se está escribiendo
        /// el largo de sus datos.
        /// </param>
        /// <param name="dataLength">
        /// Es el largo de los datos del componente (puede diferir del largo
        /// de los datos obtenidos de <paramref name="component"/>, pues pueden
        /// estar rellenados)
        /// </param>
        /// <param name="encodedLength">
        /// Es el largo de los datos codificados.
        /// </param>
        /// <param name="formatterContext">
        /// Es el contexto de formateo del mensaje.
        /// </param>
        public override void WriteLength(MessagingComponent component,
                                         int dataLength, int encodedLength, ref FormatterContext formatterContext)
        {
            if ((dataLength < _minimumLength) ||
                (dataLength > MaximumLength))
            {
                throw new ArgumentOutOfRangeException("dataLength", dataLength,
                                                      SR.Between(_minimumLength, MaximumLength));
            }

            _lengthEncoder.Encode(dataLength, ref formatterContext);
        }
Example #4
0
        /// <summary>
        /// Retorna la representación XML en una cadena de caracteres de un
        /// mensaje.
        /// </summary>
        /// <param name="renderingMap">
        /// Es el mapa de todos los objetos que representan objetos. Vea log4net.
        /// </param>
        /// <param name="component">
        /// Es el mensaje a ser representado en XML.
        /// </param>
        /// <param name="indent">
        /// Es la indentación a emplear en la representación XML.
        /// </param>
        /// <returns>
        /// Retorna una cadena de caracteres con la representación en XML
        /// del mensaje.
        /// </returns>
        public override string DoRender(RendererMap renderingMap,
                                        MessagingComponent component, string indent)
        {
            if (!(component is Message))
            {
                throw new ArgumentException(SR.ComponentIsNotAMessage, "component");
            }

            Message message = ( Message)component;

            message.CorrectBitMapsValues();

            StringBuilder render = new StringBuilder();
            Field         field;

            render.Append(indent);
            render.Append("<");
            render.Append(MessagingComponentXmlRendering.XmlMessageTag);
            render.Append(">");
            render.Append(Environment.NewLine);

            string newIndent = indent + "   ";

            if (message.Header != null)
            {
                render.Append(message.Header.XmlRendering(renderingMap).DoRender(
                                  renderingMap, message.Header, indent));
            }


            int j = message.Fields.MaximumFieldNumber;

            for (int i = 0; i <= j; i++)
            {
                if ((field = message.Fields[i]) != null)
                {
                    render.Append(field.XmlRendering(renderingMap).DoRender(
                                      renderingMap, field, newIndent));
                }
            }

            render.Append(indent +
                          "</" + MessagingComponentXmlRendering.XmlMessageTag + ">\r\n");

            return(render.ToString());
        }
Example #5
0
        /// <summary>
        /// Retorna la representación XML en una cadena de caracteres de un cabezal
        /// de mensajes.
        /// </summary>
        /// <param name="renderingMap">Es el mapa de todos los objetos que representan
        /// objetos. Vea log4net.</param>
        /// <param name="component">Es el cabezal de mensajes a ser representado en
        /// XML.</param>
        /// <param name="indent">Es la indentación a emplear en la representación
        /// XML.</param>
        /// <returns>Retorna una cadena de caracteres con la representación en XML
        /// del cabezal de mensajes.</returns>
        public override string DoRender(RendererMap renderingMap,
                                        MessagingComponent component, string indent)
        {
            if (!(component is MessageHeader))
            {
                throw new ArgumentException(SR.ComponentIsNotMessageHeader, "component");
            }

            MessageHeader header = ( MessageHeader)component;

            StringBuilder render = new StringBuilder();

            render.Append(indent);
            render.Append("<");
            render.Append(MessagingComponentXmlRendering.XmlHeaderTag);
            render.Append(" ");
            render.Append(MessagingComponentXmlRendering.XmlValueAttr);
            render.Append("=\"");
            render.Append(ToString());
            render.Append(" \" />");
            render.Append(Environment.NewLine);

            return(render.ToString());
        }
 /// <summary>
 /// Escribe el largo de los datos del campo en el contexto de
 /// formateo del mensaje.
 /// </summary>
 /// <param name="component">
 /// Es el componente de mensajería del que se está escribiendo
 /// el largo de sus datos.
 /// </param>
 /// <param name="dataLength">
 /// Es el largo de los datos del componente (puede diferir del largo
 /// de los datos obtenidos de <paramref name="component"/>, pues pueden
 /// estar rellenados)
 /// </param>
 /// <param name="encodedLength">
 /// Es el largo de los datos codificados.
 /// </param>
 /// <param name="formatterContext">
 /// Es el contexto de formateo del mensaje.
 /// </param>
 public virtual void WriteLength(MessagingComponent component,
                                 int dataLength, int encodedLength, ref FormatterContext formatterContext)
 {
 }
Example #7
0
 /// <summary>
 /// Retorna la representación XML en una cadena de caracteres de un componente
 /// de mensajería.
 /// </summary>
 /// <param name="renderingMap">Es el mapa de todos los objetos que representan
 /// objetos. Vea log4net.</param>
 /// <param name="component">Es el campo a ser representado en XML.</param>
 /// <param name="indent">Es la indentación a emplear en la representación
 /// XML.</param>
 /// <returns>Retorna una cadena de caracteres con la representación en XML
 /// del componente de mensajería.</returns>
 public virtual string DoRender(RendererMap renderingMap, MessagingComponent component,
                                string indent)
 {
     return(string.Empty);
 }
        /// <summary>
        /// Retorna la representación XML en una cadena de caracteres de un
        /// mapa de bits.
        /// </summary>
        /// <param name="renderingMap">Es el mapa de todos los objetos que representan
        /// objetos. Vea log4net.</param>
        /// <param name="component">Es el BitMap a ser representado en XML.</param>
        /// <param name="indent">Es la indentación a emplear en la representación
        /// XML.</param>
        /// <returns>Retorna una cadena de caracteres con la representación en XML
        /// del mapa de bits.</returns>
        public override string DoRender(RendererMap renderingMap,
                                        MessagingComponent component, string indent)
        {
            if (!(component is BitMapField))
            {
                throw new ArgumentException(SR.ComponentIsNotABitmapField, "component");
            }

            BitMapField   bitmap = ( BitMapField)component;
            StringBuilder render = new StringBuilder();
            bool          comma  = false;

            string bitmapIndent = indent;

            if (bitmap.FieldNumber >= 0)
            {
                render.Append(indent);
                render.Append("<");
                render.Append(MessagingComponentXmlRendering.XmlFieldTag);
                render.Append(" ");
                render.Append(MessagingComponentXmlRendering.XmlNumberAttr);
                render.Append("=\"");
                render.Append(bitmap.FieldNumber.ToString(CultureInfo.CurrentCulture));
                render.Append("\" ");
                render.Append(MessagingComponentXmlRendering.XmlTypeAttr);
                render.Append("=\"");
                render.Append(MessagingComponentXmlRendering.XmlComponentVal);
                render.Append("\">");
                render.Append(Environment.NewLine);

                bitmapIndent += "   ";
            }

            render.Append(bitmapIndent);
            render.Append("<");
            render.Append(MessagingComponentXmlRendering.XmlBitMapTag);
            render.Append(" ");
            render.Append(MessagingComponentXmlRendering.XmlValueAttr);
            render.Append("=\"");

            for (int i = bitmap.LowerFieldNumber; i <= bitmap.UpperFieldNumber; i++)
            {
                if (bitmap.IsSet(i))
                {
                    if (comma)
                    {
                        render.Append(string.Format(",{0}", i));
                    }
                    else
                    {
                        comma = true;
                        render.Append(i);
                    }
                }
            }
            render.Append("\" />");
            render.Append(Environment.NewLine);

            if (bitmap.FieldNumber >= 0)
            {
                render.Append(indent);
                render.Append("</");
                render.Append(MessagingComponentXmlRendering.XmlFieldTag);
                render.Append(">");
            }

            return(render.ToString());
        }