import org.slf4j.Logger;
import quickfix.DataDictionary;
import quickfix.Field;
import quickfix.FieldMap;
import quickfix.FieldNotFound;
import quickfix.FieldType;
import quickfix.Group;
import quickfix.Message;
import quickfix.field.MsgType;
import java.util.Iterator;
public class FIXMsgPrinter {
public static void print(Logger logger, DataDictionary dd, Message message) throws FieldNotFound {
String msgType = message.getHeader().getString(MsgType.FIELD);
printFieldMap("", dd, msgType, message.getHeader(), logger);
printFieldMap("", dd, msgType, message, logger);
printFieldMap("", dd, msgType, message.getTrailer(), logger);
}
private static void printFieldMap(String prefix, DataDictionary dd, String msgType, FieldMap fieldMap, Logger logger)
throws FieldNotFound {
Iterator fieldIterator = fieldMap.iterator();
while (fieldIterator.hasNext()) {
Field field = (Field) fieldIterator.next();
if (!isGroupCountField(dd, field)) {
String value = fieldMap.getString(field.getTag());
if (dd.hasFieldValue(field.getTag())) {
value = dd.getValueName(field.getTag(), fieldMap.getString(field.getTag())) + " (" + value + ")";
}
logger.info(prefix + dd.getFieldName(field.getTag()) + ": " + value);
}
}
Iterator groupsKeys = fieldMap.groupKeyIterator();
while (groupsKeys.hasNext()) {
int groupCountTag = ((Integer) groupsKeys.next()).intValue();
logger.info(prefix + dd.getFieldName(groupCountTag) + ": count = "
+ fieldMap.getInt(groupCountTag));
Group g = new Group(groupCountTag, 0);
int i = 1;
while (fieldMap.hasGroup(i, groupCountTag)) {
if (i > 1) {
logger.info(prefix + " ----");
}
fieldMap.getGroup(i, g);
printFieldMap(prefix + " ", dd, msgType, g, logger);
i++;
}
}
}
private static boolean isGroupCountField(DataDictionary dd, Field field) {
return dd.getFieldTypeEnum(field.getTag()) == FieldType.NumInGroup;
}
}
分享到:
相关推荐
在Windows 10操作系统中,打印机问题可能会对日常工作带来不便,尤其当急需打印文档时。"printerfix.zip"文件很可能是为了解决此类问题而提供的一个修复工具或教程集合。这个压缩包可能包含了修复Win10打印机故障的...
标题中的"FixPrintSpooler_V2.0 printerfix.zip"是一个修复打印后台处理程序(Print Spooler)问题的工具的压缩包,版本为2.0,名为"printerfix"。这个工具主要针对Windows操作系统中与Print Spooler服务相关的故障...
Foxit PDF Printer是一款高效实用的虚拟打印机,专为将各种可打印内容转化为PDF文档而设计。这款工具使得用户能够方便快捷地将Word文档、Excel表格、图像、网页等各种格式的文件转换成统一的PDF格式,便于阅读、分享...
在VB6(Visual Basic 6)中,`Printer`对象是用于控制打印机的基本接口,它允许程序员直接向打印机发送指令,实现文字、图形和表格的打印功能。本篇将深入探讨如何利用`Printer`对象来打印文字和表格,以及相关的...
"fix print spooler 2.0, win11\win10 共享打印修复工具"是专门针对这个问题设计的一个实用工具。Print Spooler服务是Windows操作系统中的关键组件,负责管理打印机队列和处理打印任务。当该服务出现问题或者系统...
air printer(无线打印照片软件)V1.6.6.1 无限制特别版 如果你有台iPhone手机, 或者苹果iPad平板电脑,那么你可以很方便得利用苹果iOS系统内置AirPrint功能WiFi无线打印照片,Word,PDF等各种文件到你的Air Printer...
printershare破解版
5. **结束打印**:在完成所有打印任务后,使用`printer_end_page()`和`printer_end_doc()`来结束当前页面和文档,最后用`printer_close()`关闭打印机连接。 6. **错误处理和调试**:`printer_last_error()`函数可以...
例如,`printer_open()`用于打开一个打印机设备,`printer_start_doc()`用于开始一个新的打印文档,`printer_start_page()`则表示开始新的打印页,`printer_draw_text()`可以将文本绘制到页面上,而`printer_end_...
SQL Pretty Printer 秘钥 SQL Pretty Printer 是一款非常实用的SQL代码美化工具,可以把原本杂乱无章的SQL语句用结构化的方式重新展现,使SQL语句更加易于理解和维护。这个程 序用来帮助数据库管理员,开发人员格式...
luci-app-usb-printer_1.0-2_all.ipk
printershare premium 11.12.0破解版下载,android移动打印解决方案,具体如何调用可以百度,很多这种文章.
SQL Pretty Printer V3.12 绿色破解版 .纯属研究,如要正式使用请购买正版! 经本人测试已完全可用,破解的若不完全请联系我...^_^ SQL Pretty Printer V3.12 绿色破解版 SQL Pretty Printer 绿色破解版 SQL Pretty ...
Printer ESC-POS命令打印辅助库 源码地址:ProjectX 介绍 标准ESC-POS命令打印,固定IP或蓝牙打印,支持黑白图片打印。 其中PrintCommands类列出了基本所有的ESC-POS打印命令。 打印指令参考自Commande ESCPOS.pdf...
Zebra打印机以其可靠性和广泛的功能在条形码、二维码打印领域备受推崇,而“Zebra Printer Setup”应用程序则为用户提供了便捷的设置和管理工具。 首先,我们需要了解的是“Zebra Printer Setup”这款软件。它是由...
SQL Pretty Printer是一款强大的SQL代码美化和格式化工具,它的主要功能是将杂乱无章的SQL语句整理成清晰易读的格式,这对于数据库管理员、开发人员和数据分析者来说非常实用。这款工具可以帮助用户提高代码的可读性...
SQL Pretty Printer 破解版 强大的SQl格式化工具
Poster Printer即以前的ProPoster,是一款制作海报风格图片的软件,适合制作、打印大尺寸海报、标识、签名等,它支持多种图像格式,能制作最大228.6x312.97cm的大幅海报. 使用起来也非常简单,直接载入图片,然后...
如果你有台iPhone手机, 或者苹果iPad平板电脑,那么你可以很方便得利用苹果iOS系统内置AirPrint功能WiFi无线打印照片,Word,PDF等各种文件到你的Air Printer打印机,但有个前提是你的打印机必须支持苹果Air Print...
SQL Pretty Printer for SSMS 是一款专门针对SQL Server Management Studio (SSMS) 设计的代码格式化工具。这个工具的主要功能是帮助用户整理和美化在SSMS中编写的SQL查询语句,使其更易于阅读和理解,提升代码质量...