Skip to content

Commit e368c17

Browse files
andreydpAndrii Poletaiev
authored andcommitted
Solve merge conflicts. Merge master.
1 parent 53912e5 commit e368c17

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

quickfixj-base/src/main/java/quickfix/Message.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,7 @@ private void parseGroup(String msgType, StringField field, DataDictionary dd, Da
733733
throw MessageUtils.newInvalidMessageException("Repeating group count requires an Integer but found '" + field.getValue() + "' in " + messageData, this);
734734
}
735735
parent.setField(groupCountTag, field);
736-
int firstField = groupDataDictionary.isFirstFieldInGroupIsDelimiter() ? -1 : rg.getDelimiterField();
736+
int firstField = dds.isFirstFieldInGroupIsDelimiter() ? -1 : rg.getDelimiterField();
737737
Group group = null;
738738
boolean inGroupParse = true;
739739
while (inGroupParse) {
@@ -743,7 +743,7 @@ private void parseGroup(String msgType, StringField field, DataDictionary dd, Da
743743
break;
744744
}
745745
int tag = field.getTag();
746-
boolean shouldCreateNewGroup = tag == firstField || (groupDataDictionary.isFirstFieldInGroupIsDelimiter() && firstField == -1);
746+
boolean shouldCreateNewGroup = tag == firstField || (dds.isFirstFieldInGroupIsDelimiter() && firstField == -1);
747747
if (shouldCreateNewGroup) {
748748
firstField = tag;
749749
addGroupRefToParent(group, parent);

quickfixj-base/src/main/java/quickfix/ValidationSettings.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class ValidationSettings {
2525
boolean checkUserDefinedFields = true;
2626
boolean checkUnorderedGroupFields = true;
2727
boolean allowUnknownMessageFields = false;
28+
boolean firstFieldInGroupIsDelimiter = false;
2829

2930
public ValidationSettings() {}
3031

@@ -65,6 +66,10 @@ public boolean isAllowUnknownMessageFields() {
6566
return allowUnknownMessageFields;
6667
}
6768

69+
public boolean isFirstFieldInGroupIsDelimiter() {
70+
return firstFieldInGroupIsDelimiter;
71+
}
72+
6873
/**
6974
* Controls whether group fields are in the same order
7075
*
@@ -95,4 +100,15 @@ public void setCheckUserDefinedFields(boolean flag) {
95100
public void setAllowUnknownMessageFields(boolean allowUnknownFields) {
96101
allowUnknownMessageFields = allowUnknownFields;
97102
}
103+
104+
/**
105+
* Controls whether any field which is
106+
* first in the group would be used as delimiter
107+
*
108+
* @param flag true = use first field from message, false = follow data dictionary
109+
* Must be used with disabled {@link #setCheckUnorderedGroupFields(boolean)}
110+
*/
111+
public void setFirstFieldInGroupIsDelimiter(boolean flag) {
112+
firstFieldInGroupIsDelimiter = flag;
113+
}
98114
}

quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,11 @@ private ValidationSettings createValidationSettings(SessionID sessionID, Session
314314
Session.SETTING_ALLOW_UNKNOWN_MSG_FIELDS));
315315
}
316316

317+
if (settings.isSetting(sessionID, Session.SETTING_FIRST_FIELD_IN_GROUP_IS_DELIMITER)) {
318+
validationSettings.setFirstFieldInGroupIsDelimiter(settings.getBool(sessionID,
319+
Session.SETTING_FIRST_FIELD_IN_GROUP_IS_DELIMITER));
320+
}
321+
317322
return validationSettings;
318323
}
319324

0 commit comments

Comments
 (0)