From 992c737997e849721b6ed89681446b491164b905 Mon Sep 17 00:00:00 2001 From: Enrique Zamudio Date: Fri, 1 Jul 2016 09:01:10 -0500 Subject: [PATCH] parse binary ISO headers #60 --- .../java/com/solab/iso8583/parse/ConfigParser.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/solab/iso8583/parse/ConfigParser.java b/src/main/java/com/solab/iso8583/parse/ConfigParser.java index 9e040ae..1c8d168 100644 --- a/src/main/java/com/solab/iso8583/parse/ConfigParser.java +++ b/src/main/java/com/solab/iso8583/parse/ConfigParser.java @@ -33,6 +33,7 @@ import javax.xml.parsers.ParserConfigurationException; import com.solab.iso8583.*; import com.solab.iso8583.codecs.CompositeField; +import com.solab.iso8583.util.HexCodec; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; @@ -128,10 +129,16 @@ public class ConfigParser { else throw new IOException("Invalid ISO8583 header element"); } else { String header = elem.getChildNodes().item(0).getNodeValue(); + boolean binHeader = "true".equals(elem.getAttribute("binary")); if (log.isTraceEnabled()) { - log.trace("Adding ISO8583 header for type {}: {}", elem.getAttribute("type"), header); + log.trace("Adding {}ISO8583 header for type {}: {}", + binHeader?"binary ":"", elem.getAttribute("type"), header); + } + if (binHeader) { + mfact.setBinaryIsoHeader(type, HexCodec.hexDecode(header)); + } else { + mfact.setIsoHeader(type, header); } - mfact.setIsoHeader(type, header); } } if (refs != null) {