test_class.declarator: codec
test_class.modifier: private
test_class.original_string: private FIXCodec codec;
test_class.type: FIXCodec
test_class.var_name: codec
test_class.declarator: msgFactory
test_class.modifier: private
test_class.original_string: private IMessageFactory msgFactory;
test_class.type: IMessageFactory
test_class.var_name: msgFactory
test_class.declarator: dictionary
test_class.modifier: private
test_class.original_string: private IDictionaryStructure dictionary;
test_class.type: IDictionaryStructure
test_class.var_name: dictionary
test_class.file: BackEnd/Service/service-fix/src/test/java/com/exactpro/sf/services/fix/FixCodecTest.java
test_class.identifier: FixCodecTest
test_class.superclass: extends AbstractTest
test_case.body: @Test
      public void testXmlSubMessage() throws Exception {
          InputStream in = getClass().getClassLoader().getResourceAsStream("dictionary/FIX50.XML_MESSAGE.xml");
          IDictionaryStructure dictionary = new XmlDictionaryStructureLoader().load(in);
  
          TCPIPSettings settings = new TCPIPSettings();
          settings.setDecodeByDictionary(false);
  
          FIXCodec codec = new FIXCodec();
          codec.init(serviceContext, settings, msgFactory, dictionary);
  
          IoSession session = new DummySession();
          AbstractProtocolDecoderOutput outputDec = new MockProtocolDecoderOutput();
  
          @SuppressWarnings("ConfusingOctalEscapeSequence")
          String message =
                  "8=FIXT.1.1\0019=1232\00135=777\00149=SEN\00156=TARGET\00134=2\00152=20121212-00:00:00\001" +
                          "11111=777.888999\001" +
                          "22222=StringField\001" +
                          "33333=333\001" +
                          "44444=-444.555666\001" +
                          "55555=Y\001" +
                          "66666=20170428\001" +
                          "77777=14:15:31.766\001" +
                          "88888=20170428-14:15:31.766\001" +
                          "99999=C\001" +
                          "7777=2\001" +                          // group
                          "7778=Tom\001" +
                          "7779=1\001" +
                          "7780=20001515-02:02:02.222\001" +
                          "7778=Jerry\001" +
                          "7779=2\001" +
                          "7780=20001515-03:03:03.333\001" +
                          "8888=CompString\001" +                 // component
                          "8889=-5\001" +
                          "8890=20001515-04:04:04.444\001" +
                          "100001=<xml_context>\012" +            // xml message
                          "    <udf name = \"String Field\" entity = \"SOME~ENTITY\" type = \"STRING\" value = \"It's work\" />\012" +
                          "    <udf name = \"Integer Field\" entity = \"SOME~ENTITY\" type = \"INTEGER\" value = \"13\" />\012" +
                          "    <udf name = \"Double Field\" entity = \"SOME~ENTITY\" type = \"DOUBLE\" value = \"444.555666\" />\012" +
                          "    <udf name = \"Big Decimal Field\" entity = \"SOME~ENTITY\" type = \"DOUBLE\" value = \"111.222333\" />\012" +
                          "    <udf name = \"Boolean Field\" entity = \"SOME~ENTITY\" type = \"DOUBLE\" value = \"Y\" />\012" +
                          "    <udf name = \"Character Field\" entity = \"SOME~ENTITY\" type = \"DOUBLE\" value = \"C\" />\012" +
                          "    <udf name = \"Local Date Field\" entity = \"SOME~ENTITY\" type = \"DOUBLE\" value = \"20170428\" />\012" +
                          "    <udf name = \"Local Time Field\" entity = \"SOME~ENTITY\" type = \"DOUBLE\" value = \"14:15:31.766\" />\012" +
                          "    <udf name = \"Local Date Time Field\" entity = \"SOME~ENTITY\" type = \"DOUBLE\" value = \"20170428-14:15:31.766\" />\012" +
                          "</xml_context>\012\001" +
                          "10=170\001";
          IoBuffer buffer = IoBuffer.wrap(message.getBytes());
  
          codec.decode(session, buffer, outputDec);
  
          IMessage decodedMessage = (IMessage) outputDec.getMessageQueue().poll();
  
          // check fields without by dictionary decoding
          Assert.assertEquals("FIXT.1.1", decodedMessage.getField("BeginString"));
          Assert.assertEquals("1232", decodedMessage.getField("BodyLength"));
          Assert.assertEquals("777", decodedMessage.getField("MsgType"));
          Assert.assertEquals("SEN", decodedMessage.getField("SenderCompID"));
          Assert.assertEquals("TARGET", decodedMessage.getField("TargetCompID"));
          Assert.assertEquals("2", decodedMessage.getField("MsgSeqNum"));
          Assert.assertEquals("20121212-00:00:00", decodedMessage.getField("SendingTime"));
          Assert.assertEquals("333", decodedMessage.getField("IntegerField"));
          Assert.assertEquals("-444.555666", decodedMessage.getField("DoubleField"));
          Assert.assertEquals("777.888999", decodedMessage.getField("BigDecimalField"));
          Assert.assertEquals("Y", decodedMessage.getField("BooleanField"));
          Assert.assertEquals("C", decodedMessage.getField("CharacterField"));
          Assert.assertEquals("20170428", decodedMessage.getField("LocalDateField"));
          Assert.assertEquals("14:15:31.766", decodedMessage.getField("LocalTimeField"));
          Assert.assertEquals("20170428-14:15:31.766", decodedMessage.getField("LocalDateTimeField"));
          Assert.assertEquals("170", decodedMessage.getField("CheckSum"));
  
          // check group
          Assert.assertEquals("2", decodedMessage.getField("NoRepGroups"));
          Assert.assertEquals("Jerry", decodedMessage.getField("StringGroup"));   // last value expected
          Assert.assertEquals("2", decodedMessage.getField("IntegerGroup"));      // last value expected
          Assert.assertEquals("20001515-03:03:03.333",
                              decodedMessage.getField("LocalDateTimeGroup"));              // last value expected
  
          // check component
          Assert.assertEquals("CompString", decodedMessage.getField("StringComp"));
          Assert.assertEquals("-5", decodedMessage.getField("IntegerComp"));
          Assert.assertEquals("20001515-04:04:04.444", decodedMessage.getField("LocalDateTimeComp"));
  
          // check xml sub message without by dictionary decoding
          IMessage xmlSubMessage = (IMessage)decodedMessage.getField("XmlSubMessage");
  
          Assert.assertEquals("It's work", xmlSubMessage.getField("StringField"));
          Assert.assertEquals("13", xmlSubMessage.getField("IntegerField"));
          Assert.assertEquals("444.555666", xmlSubMessage.getField("DoubleField"));
          Assert.assertEquals("111.222333", xmlSubMessage.getField("BigDecimalField"));
          Assert.assertEquals("Y", xmlSubMessage.getField("BooleanField"));
          Assert.assertEquals("C", xmlSubMessage.getField("CharacterField"));
          Assert.assertEquals("20170428", xmlSubMessage.getField("LocalDateField"));
          Assert.assertEquals("14:15:31.766", xmlSubMessage.getField("LocalTimeField"));
          Assert.assertEquals("20170428-14:15:31.766", xmlSubMessage.getField("LocalDateTimeField"));
  
          settings.setDecodeByDictionary(true);
          settings.setDepersonalizationIncomingMessages(false);
          codec.init(serviceContext, settings, msgFactory, dictionary);
  
          session = new DummySession();
          outputDec = new MockProtocolDecoderOutput();
          buffer = IoBuffer.wrap(message.getBytes());
  
          codec.decode(session, buffer, outputDec);
  
          decodedMessage = (IMessage) outputDec.getMessageQueue().poll();
  
          // check fields with by dictionary decoding
          Assert.assertEquals("StringField", decodedMessage.getField("StringField"));
          Assert.assertEquals((Integer)333, decodedMessage.getField("IntegerField"));
          Assert.assertEquals(-444.555666, decodedMessage.getField("DoubleField"));
          Assert.assertEquals(new BigDecimal("777.888999"), decodedMessage.getField("BigDecimalField"));
          Assert.assertEquals((Boolean)true, decodedMessage.getField("BooleanField"));
          Assert.assertEquals((Character)'C', decodedMessage.getField("CharacterField"));
  
          LocalDate date = DateTimeUtility.toLocalDate(UtcDateOnlyConverter.convert("20170428"));
          Assert.assertEquals(date, decodedMessage.getField("LocalDateField"));
  
          LocalTime time = DateTimeUtility.toLocalTime(UtcTimeOnlyConverter.convert("14:15:31.766"));
          Assert.assertEquals(time, decodedMessage.getField("LocalTimeField"));
  
          LocalDateTime dateTime = DateTimeUtility.toLocalDateTime(
                  UtcTimestampConverter.convert("20170428-14:15:31.766"));
          Assert.assertEquals(dateTime, decodedMessage.getField("LocalDateTimeField"));
  
          //header
          IMessage header = (IMessage) decodedMessage.getField("header");
          Assert.assertEquals("FIXT.1.1", header.getField("BeginString"));
          Assert.assertEquals((Integer)1232, header.getField("BodyLength"));
          Assert.assertEquals("777", header.getField("MsgType"));
          Assert.assertEquals("SEN", header.getField("SenderCompID"));
          Assert.assertEquals("TARGET", header.getField("TargetCompID"));
          Assert.assertEquals((Integer)2, header.getField("MsgSeqNum"));
          Assert.assertEquals(DateTimeUtility.toLocalDateTime(UtcTimestampConverter.convert("20121212-00:00:00")),
                  header.getField("SendingTime"));
  
          // trailer
          IMessage trailer = (IMessage) decodedMessage.getField("trailer");
          Assert.assertEquals("170", trailer.getField("CheckSum"));
  
          // check group
          IMessage groupContainer = (IMessage)decodedMessage.getField("RepGroup");
          List<IMessage> group = groupContainer.<List<IMessage>>getField("NoRepGroup");
          Assert.assertEquals(2, group.size());
  
          IMessage groupMessage = group.get(0);
          Assert.assertEquals("Tom", groupMessage.getField("StringGroup"));
          Assert.assertEquals((Integer)1, groupMessage.getField("IntegerGroup"));
          Assert.assertEquals(DateTimeUtility.toLocalDateTime(
                  UtcTimestampConverter.convert("20001515-02:02:02.222")),
                  groupMessage.getField("LocalDateTimeGroup"));
          groupMessage = group.get(1);
          Assert.assertEquals("Jerry", groupMessage.getField("StringGroup"));
          Assert.assertEquals((Integer)2, groupMessage.getField("IntegerGroup"));
          Assert.assertEquals(DateTimeUtility.toLocalDateTime(
                  UtcTimestampConverter.convert("20001515-03:03:03.333")),
                  groupMessage.getField("LocalDateTimeGroup"));
  
          // check component
          IMessage component = (IMessage)decodedMessage.getField("SomeComp");
          Assert.assertEquals("CompString", component.getField("StringComp"));
          //noinspection UnnecessaryParentheses
          Assert.assertEquals((Integer)(-5), component.getField("IntegerComp"));
          Assert.assertEquals(DateTimeUtility.toLocalDateTime(
                  UtcTimestampConverter.convert("20001515-04:04:04.444")),
                  component.getField("LocalDateTimeComp"));
  
          // check xml sub message with by dictionary decoding
          xmlSubMessage = (IMessage)decodedMessage.getField("XmlSubMessage");
  
          Assert.assertEquals("It's work", xmlSubMessage.getField("StringField"));
          Assert.assertEquals((Integer)13, xmlSubMessage.getField("IntegerField"));
          Assert.assertEquals(444.555666, xmlSubMessage.getField("DoubleField"));
          Assert.assertEquals(new BigDecimal("111.222333"), xmlSubMessage.getField("BigDecimalField"));
          Assert.assertEquals((Boolean)true, xmlSubMessage.getField("BooleanField"));
          Assert.assertEquals((Character)'C', xmlSubMessage.getField("CharacterField"));
  
          date = DateTimeUtility.toLocalDate(UtcDateOnlyConverter.convert("20170428"));
          Assert.assertEquals(date, xmlSubMessage.getField("LocalDateField"));
  
          time = DateTimeUtility.toLocalTime(UtcTimeOnlyConverter.convert("14:15:31.766"));
          Assert.assertEquals(time, xmlSubMessage.getField("LocalTimeField"));
  
          dateTime = DateTimeUtility.toLocalDateTime(UtcTimestampConverter.convert("20170428-14:15:31.766"));
          Assert.assertEquals(dateTime, xmlSubMessage.getField("LocalDateTimeField"));
  
          // with depersonalization
          settings.setDecodeByDictionary(true);
          settings.setDepersonalizationIncomingMessages(true);
          codec.init(serviceContext, settings, msgFactory, dictionary);
  
          session = new DummySession();
          outputDec = new MockProtocolDecoderOutput();
          buffer = IoBuffer.wrap(message.getBytes());
  
          codec.decode(session, buffer, outputDec);
  
          decodedMessage = (IMessage) outputDec.getMessageQueue().poll();
  
          // check fields with by dictionary decoding with depersonalization
          Assert.assertEquals("StringField", decodedMessage.getField("StringField"));
          Assert.assertEquals("333", decodedMessage.getField("IntegerField"));
          Assert.assertEquals("-444.555666", decodedMessage.getField("DoubleField"));
          Assert.assertEquals("777.888999", decodedMessage.getField("BigDecimalField"));
          Assert.assertEquals("Y", decodedMessage.getField("BooleanField"));
          Assert.assertEquals("C", decodedMessage.getField("CharacterField"));
          Assert.assertEquals("20170428", decodedMessage.getField("LocalDateField"));
          Assert.assertEquals("14:15:31.766", decodedMessage.getField("LocalTimeField"));
          Assert.assertEquals("20170428-14:15:31.766", decodedMessage.getField("LocalDateTimeField"));
  
          // header with depersonalization
          header = (IMessage) decodedMessage.getField("header");
          Assert.assertEquals("FIXT.1.1", header.getField("BeginString"));
          Assert.assertEquals("1232", header.getField("BodyLength"));
          Assert.assertEquals("777", header.getField("MsgType"));
          Assert.assertEquals("SEN", header.getField("SenderCompID"));
          Assert.assertEquals("TARGET", header.getField("TargetCompID"));
          Assert.assertEquals("2", header.getField("MsgSeqNum"));
          Assert.assertEquals("20121212-00:00:00", header.getField("SendingTime"));
  
          // trailer with depersonalization
          trailer = (IMessage) decodedMessage.getField("trailer");
          Assert.assertEquals("170", trailer.getField("CheckSum"));
  
          // check group with depersonalization
          List<IMessage> repGroup = decodedMessage.<List<IMessage>>getField("RepGroup");
          group = repGroup.get(0).<List<IMessage>>getField("NoRepGroup");
          Assert.assertEquals(2, group.size());
  
          groupMessage = group.get(0);
          Assert.assertEquals("Tom", groupMessage.getField("StringGroup"));
          Assert.assertEquals("1", groupMessage.getField("IntegerGroup"));
          Assert.assertEquals("20001515-02:02:02.222", groupMessage.getField("LocalDateTimeGroup"));
          groupMessage = group.get(1);
          Assert.assertEquals("Jerry", groupMessage.getField("StringGroup"));
          Assert.assertEquals("2", groupMessage.getField("IntegerGroup"));
          Assert.assertEquals("20001515-03:03:03.333", groupMessage.getField("LocalDateTimeGroup"));
  
          // check component with depersonalization
          List<IMessage> someComp = decodedMessage.<List<IMessage>>getField("SomeComp");
          Assert.assertEquals("CompString", someComp.get(0).getField("StringComp"));
          Assert.assertEquals("-5", someComp.get(0).getField("IntegerComp"));
          Assert.assertEquals("20001515-04:04:04.444", someComp.get(0).getField("LocalDateTimeComp"));
  
          // check xml sub message with by dictionary decoding with depersonalization
          xmlSubMessage = (IMessage)decodedMessage.getField("XmlSubMessage");
  
          Assert.assertEquals("It's work", xmlSubMessage.getField("StringField"));
          Assert.assertEquals("13", xmlSubMessage.getField("IntegerField"));
          Assert.assertEquals("444.555666", xmlSubMessage.getField("DoubleField"));
          Assert.assertEquals("111.222333", xmlSubMessage.getField("BigDecimalField"));
          Assert.assertEquals("Y", xmlSubMessage.getField("BooleanField"));
          Assert.assertEquals("C", xmlSubMessage.getField("CharacterField"));
          Assert.assertEquals("20170428", xmlSubMessage.getField("LocalDateField"));
          Assert.assertEquals("14:15:31.766", xmlSubMessage.getField("LocalTimeField"));
          Assert.assertEquals("20170428-14:15:31.766", xmlSubMessage.getField("LocalDateTimeField"));
      }
test_case.class_method_signature: FixCodecTest.testXmlSubMessage()
test_case.full_signature: @Test public void testXmlSubMessage()
test_case.identifier: testXmlSubMessage
test_case.invocations: getResourceAsStream getClassLoader getClass load setDecodeByDictionary init wrap getBytes decode poll getMessageQueue assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField setDecodeByDictionary setDepersonalizationIncomingMessages init wrap getBytes decode poll getMessageQueue assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField toLocalDate convert assertEquals getField toLocalTime convert assertEquals getField toLocalDateTime convert assertEquals getField getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals toLocalDateTime convert getField getField assertEquals getField getField getField assertEquals size get assertEquals getField assertEquals getField assertEquals toLocalDateTime convert getField get assertEquals getField assertEquals getField assertEquals toLocalDateTime convert getField getField assertEquals getField assertEquals getField assertEquals toLocalDateTime convert getField getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField toLocalDate convert assertEquals getField toLocalTime convert assertEquals getField toLocalDateTime convert assertEquals getField setDecodeByDictionary setDepersonalizationIncomingMessages init wrap getBytes decode poll getMessageQueue assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField getField assertEquals getField getField getField get assertEquals size get assertEquals getField assertEquals getField assertEquals getField get assertEquals getField assertEquals getField assertEquals getField getField assertEquals getField get assertEquals getField get assertEquals getField get getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField assertEquals getField
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testXmlSubMessage()
focal_class.declarator: logger = LoggerFactory.getLogger(FIXCodec.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(FIXCodec.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: SOH = "\001"
focal_class.modifier: public static final
focal_class.original_string: public static final String SOH = "\001";
focal_class.type: String
focal_class.var_name: SOH
focal_class.declarator: SEP = "\\|"
focal_class.modifier: public static final
focal_class.original_string: public static final String SEP = "\\|";
focal_class.type: String
focal_class.var_name: SEP
focal_class.declarator: SUB_CONDITIONS_DELIMETER = ","
focal_class.modifier: public static final
focal_class.original_string: public static final String SUB_CONDITIONS_DELIMETER = ",";
focal_class.type: String
focal_class.var_name: SUB_CONDITIONS_DELIMETER
focal_class.declarator: SOH_REPLACEMENT = SOH + "$1"
focal_class.modifier: private static final
focal_class.original_string: private static final String SOH_REPLACEMENT = SOH + "$1";
focal_class.type: String
focal_class.var_name: SOH_REPLACEMENT
focal_class.declarator: settings
focal_class.modifier: private
focal_class.original_string: private TCPIPSettings settings;
focal_class.type: TCPIPSettings
focal_class.var_name: settings
focal_class.declarator: msgFactory
focal_class.modifier: private
focal_class.original_string: private IMessageFactory msgFactory;
focal_class.type: IMessageFactory
focal_class.var_name: msgFactory
focal_class.declarator: fieldConverter
focal_class.modifier: private
focal_class.original_string: private IFieldConverter fieldConverter;
focal_class.type: IFieldConverter
focal_class.var_name: fieldConverter
focal_class.declarator: dictionary
focal_class.modifier: private
focal_class.original_string: private IDictionaryStructure dictionary;
focal_class.type: IDictionaryStructure
focal_class.var_name: dictionary
focal_class.declarator: qfjConverter
focal_class.modifier: private
focal_class.original_string: private DirtyQFJIMessageConverter qfjConverter;
focal_class.type: DirtyQFJIMessageConverter
focal_class.var_name: qfjConverter
focal_class.declarator: msgStructures
focal_class.modifier: private
focal_class.original_string: private Map<String, IMessageStructure> msgStructures;
focal_class.type: Map<String, IMessageStructure>
focal_class.var_name: msgStructures
focal_class.declarator: dataDict
focal_class.modifier: private
focal_class.original_string: private QFJDictionaryAdapter dataDict;
focal_class.type: QFJDictionaryAdapter
focal_class.var_name: dataDict
focal_class.declarator: messageFilter
focal_class.modifier: private
focal_class.original_string: private IMessageFilter<String> messageFilter;
focal_class.type: IMessageFilter<String>
focal_class.var_name: messageFilter
focal_class.declarator: messagesWithXmlField = new HashSet<>()
focal_class.modifier: private final
focal_class.original_string: private final Set<String> messagesWithXmlField = new HashSet<>();
focal_class.type: Set<String>
focal_class.var_name: messagesWithXmlField
focal_class.declarator: documentFactory = DocumentBuilderFactory.newInstance()
focal_class.modifier: private final
focal_class.original_string: private final DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
focal_class.type: DocumentBuilderFactory
focal_class.var_name: documentFactory
focal_class.declarator: separatorReplacePattern
focal_class.modifier: private
focal_class.original_string: private String separatorReplacePattern;
focal_class.type: String
focal_class.var_name: separatorReplacePattern
focal_class.declarator: fieldSeparator = SOH
focal_class.modifier: private
focal_class.original_string: private String fieldSeparator = SOH;
focal_class.type: String
focal_class.var_name: fieldSeparator
focal_class.file: BackEnd/Service/service-fix/src/main/java/com/exactpro/sf/services/fix/FIXCodec.java
focal_class.identifier: FIXCodec
focal_class.class_method_signature: FIXCodec.init(IServiceContext serviceContext, ICommonSettings settings, IMessageFactory msgFactory, IDictionaryStructure dictionary)
focal_class.full_signature: @Override public void init(IServiceContext serviceContext, ICommonSettings settings, IMessageFactory msgFactory, IDictionaryStructure dictionary)
focal_class.identifier: init
focal_class.modifiers: @Override public
focal_class.parameters: (IServiceContext serviceContext, ICommonSettings settings, IMessageFactory msgFactory, IDictionaryStructure dictionary)
focal_class.return: void
focal_class.signature: void init(IServiceContext serviceContext, ICommonSettings settings, IMessageFactory msgFactory, IDictionaryStructure dictionary)
focal_class.class_method_signature: FIXCodec.getFixString(IoBuffer in)
focal_class.full_signature: public static String getFixString(IoBuffer in)
focal_class.identifier: getFixString
focal_class.modifiers: public static
focal_class.parameters: (IoBuffer in)
focal_class.return: String
focal_class.signature: String getFixString(IoBuffer in)
focal_class.class_method_signature: FIXCodec.getFixString(IoBuffer in, String fieldSeparator)
focal_class.full_signature: public static String getFixString(IoBuffer in, String fieldSeparator)
focal_class.identifier: getFixString
focal_class.modifiers: public static
focal_class.parameters: (IoBuffer in, String fieldSeparator)
focal_class.return: String
focal_class.signature: String getFixString(IoBuffer in, String fieldSeparator)
focal_class.class_method_signature: FIXCodec.doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out)
focal_class.full_signature: @Override protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out)
focal_class.identifier: doDecode
focal_class.modifiers: @Override protected
focal_class.parameters: (IoSession session, IoBuffer in, ProtocolDecoderOutput out)
focal_class.return: boolean
focal_class.signature: boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out)
focal_class.class_method_signature: FIXCodec.encode(IoSession session, Object message, ProtocolEncoderOutput out)
focal_class.full_signature: @Override public void encode(IoSession session, Object message, ProtocolEncoderOutput out)
focal_class.identifier: encode
focal_class.modifiers: @Override public
focal_class.parameters: (IoSession session, Object message, ProtocolEncoderOutput out)
focal_class.return: void
focal_class.signature: void encode(IoSession session, Object message, ProtocolEncoderOutput out)
focal_class.class_method_signature: FIXCodec.convertToIMessageByIDictionaryStructure(String fixMessage)
focal_class.full_signature: protected IMessage convertToIMessageByIDictionaryStructure(String fixMessage)
focal_class.identifier: convertToIMessageByIDictionaryStructure
focal_class.modifiers: protected
focal_class.parameters: (String fixMessage)
focal_class.return: IMessage
focal_class.signature: IMessage convertToIMessageByIDictionaryStructure(String fixMessage)
focal_class.class_method_signature: FIXCodec.convertToIMessage(String fixMessage)
focal_class.full_signature: protected IMessage convertToIMessage(String fixMessage)
focal_class.identifier: convertToIMessage
focal_class.modifiers: protected
focal_class.parameters: (String fixMessage)
focal_class.return: IMessage
focal_class.signature: IMessage convertToIMessage(String fixMessage)
focal_class.class_method_signature: FIXCodec.isUnexpectedMessage(String fixMessage, String unexpectedMessages)
focal_class.full_signature: protected boolean isUnexpectedMessage(String fixMessage, String unexpectedMessages)
focal_class.identifier: isUnexpectedMessage
focal_class.modifiers: protected
focal_class.parameters: (String fixMessage, String unexpectedMessages)
focal_class.return: boolean
focal_class.signature: boolean isUnexpectedMessage(String fixMessage, String unexpectedMessages)
focal_class.class_method_signature: FIXCodec.getMessageName(IMessage message)
focal_class.full_signature: protected String getMessageName(IMessage message)
focal_class.identifier: getMessageName
focal_class.modifiers: protected
focal_class.parameters: (IMessage message)
focal_class.return: String
focal_class.signature: String getMessageName(IMessage message)
focal_class.class_method_signature: FIXCodec.getMessageStructure(String msgTypeValue)
focal_class.full_signature: protected IMessageStructure getMessageStructure(String msgTypeValue)
focal_class.identifier: getMessageStructure
focal_class.modifiers: protected
focal_class.parameters: (String msgTypeValue)
focal_class.return: IMessageStructure
focal_class.signature: IMessageStructure getMessageStructure(String msgTypeValue)
focal_class.class_method_signature: FIXCodec.convertMessageToIMessage(Message message, String namespace)
focal_class.full_signature: private IMessage convertMessageToIMessage(Message message, String namespace)
focal_class.identifier: convertMessageToIMessage
focal_class.modifiers: private
focal_class.parameters: (Message message, String namespace)
focal_class.return: IMessage
focal_class.signature: IMessage convertMessageToIMessage(Message message, String namespace)
focal_class.class_method_signature: FIXCodec.copyFields(FieldMap message, IMessage iMessageTo, IFieldStructure messageStructure)
focal_class.full_signature: private void copyFields(FieldMap message, IMessage iMessageTo, IFieldStructure messageStructure)
focal_class.identifier: copyFields
focal_class.modifiers: private
focal_class.parameters: (FieldMap message, IMessage iMessageTo, IFieldStructure messageStructure)
focal_class.return: void
focal_class.signature: void copyFields(FieldMap message, IMessage iMessageTo, IFieldStructure messageStructure)
focal_class.class_method_signature: FIXCodec.addGroup(List<Group> groups, List<IMessage> groupList, IFieldStructure groupStructure)
focal_class.full_signature: private void addGroup(List<Group> groups, List<IMessage> groupList, IFieldStructure groupStructure)
focal_class.identifier: addGroup
focal_class.modifiers: private
focal_class.parameters: (List<Group> groups, List<IMessage> groupList, IFieldStructure groupStructure)
focal_class.return: void
focal_class.signature: void addGroup(List<Group> groups, List<IMessage> groupList, IFieldStructure groupStructure)
focal_class.class_method_signature: FIXCodec.parseXmlFields(IMessage targetMessage, IFieldExtractor fieldExtractor, String msgType)
focal_class.full_signature: private IMessage parseXmlFields(IMessage targetMessage, IFieldExtractor fieldExtractor, String msgType)
focal_class.identifier: parseXmlFields
focal_class.modifiers: private
focal_class.parameters: (IMessage targetMessage, IFieldExtractor fieldExtractor, String msgType)
focal_class.return: IMessage
focal_class.signature: IMessage parseXmlFields(IMessage targetMessage, IFieldExtractor fieldExtractor, String msgType)
focal_class.superclass: extends AbstractCodec
focal_method.body: @Override
      public void init(IServiceContext serviceContext, ICommonSettings settings, IMessageFactory msgFactory, IDictionaryStructure dictionary) {
          if (!(settings instanceof TCPIPSettings)) {
              throw new IllegalStateException("settings is not TCPIPSettings. settings is " + settings.getClass().getName());
          }
  
          this.settings = (TCPIPSettings)settings;
  
          FixPropertiesReader.loadAndSetCharset(serviceContext);
  
          this.msgFactory = msgFactory;
  
          this.dictionary = Objects.requireNonNull(dictionary, "dictionary cannot be null");
          this.fieldConverter = new FixFieldConverter();
          fieldConverter.init(dictionary, dictionary.getNamespace());
          QFJIMessageConverterSettings qfjiMessageConverterSettings = new QFJIMessageConverterSettings(dictionary, this.msgFactory);
          this.qfjConverter = new DirtyQFJIMessageConverter(qfjiMessageConverterSettings);
  
          this.msgStructures = new HashMap<>();
  
          messagesWithXmlField.clear();
  
          for(IMessageStructure messageStructure : dictionary.getMessages().values()) {
              String msgType = getAttributeValue(messageStructure, FixMessageHelper.MESSAGE_TYPE_ATTR_NAME);
              if(msgType != null) {
                  msgStructures.put(msgType, messageStructure);
  
                  Boolean hasXmlFields = getAttributeValue(messageStructure, FixMessageHelper.HAS_XML_FIELDS_ATTR_NAME);
                  if (Boolean.TRUE.equals(hasXmlFields)) {
                      messagesWithXmlField.add(msgType);
                  }
              }
          }
          this.dataDict = new QFJDictionaryAdapter(dictionary);
          dataDict.setAllowUnknownMessageFields(true);
  
          String filterValues = this.settings.getFilterMessages();
          messageFilter = isNotEmpty(filterValues) ? new TagValueFilter(filterValues) : new FakeFilter();
  
          String fieldSeparator = this.settings.getFieldSeparator();
          if (isNotEmpty(fieldSeparator) ) {
              this.fieldSeparator = fieldSeparator;
              this.separatorReplacePattern = format("\\%s+(\\d+=)|\\%s+$", fieldSeparator, fieldSeparator);
          } else {
              this.fieldSeparator = SOH;
              this.separatorReplacePattern = null;
          }
      }
focal_method.class_method_signature: FIXCodec.init(IServiceContext serviceContext, ICommonSettings settings, IMessageFactory msgFactory, IDictionaryStructure dictionary)
focal_method.full_signature: @Override public void init(IServiceContext serviceContext, ICommonSettings settings, IMessageFactory msgFactory, IDictionaryStructure dictionary)
focal_method.identifier: init
focal_method.invocations: getName getClass loadAndSetCharset requireNonNull init getNamespace clear values getMessages getAttributeValue put getAttributeValue equals add setAllowUnknownMessageFields getFilterMessages isNotEmpty getFieldSeparator isNotEmpty format
focal_method.modifiers: @Override public
focal_method.parameters: (IServiceContext serviceContext, ICommonSettings settings, IMessageFactory msgFactory, IDictionaryStructure dictionary)
focal_method.return: void
focal_method.signature: void init(IServiceContext serviceContext, ICommonSettings settings, IMessageFactory msgFactory, IDictionaryStructure dictionary)