/// <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)); } }
/// <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); }
/// <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()); }
/// <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) { }
/// <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()); }