Skip to content

Commit 2c4f4f1

Browse files
authored
Merge pull request #1048 from the-thing/header-casting
`quickfix.Message#getHeader` subclasses to return `Header` with respective FIX version header
2 parents db4b9be + 7495907 commit 2c4f4f1

File tree

4 files changed

+28
-2
lines changed

4 files changed

+28
-2
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
<apache.mina.version>2.2.4</apache.mina.version>
101101
<commons.io.version>2.20.0</commons.io.version>
102102
<orchestra.file>OrchestraFIXLatest.xml</orchestra.file>
103-
<org.quickfixj.orchestra.tools.version>1.0.2</org.quickfixj.orchestra.tools.version>
103+
<org.quickfixj.orchestra.tools.version>1.0.3</org.quickfixj.orchestra.tools.version>
104104
<jaxen.version>2.0.0</jaxen.version>
105105
<jmh.version>1.37</jmh.version>
106106
</properties>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ private void toXMLFields(Element message, String section, FieldMap fieldMap,
432432
}
433433
}
434434

435-
public final Header getHeader() {
435+
public Header getHeader() {
436436
return header;
437437
}
438438

quickfixj-codegenerator/src/main/resources/org/quickfixj/codegenerator/Message.xsl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ public class Message extends quickfix.Message {
8080
return new Header(this);
8181
}
8282

83+
@Override
84+
public Header getHeader() {
85+
return (Message.Header)header;
86+
}
87+
8388
public static class Header extends quickfix.Message.Header {
8489

8590
static final long serialVersionUID = <xsl:value-of select="$serialVersionUID"/>;

quickfixj-core/src/test/java/quickfix/MessageTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import static org.junit.Assert.assertNotEquals;
2525
import static org.junit.Assert.assertNotNull;
2626
import static org.junit.Assert.assertNull;
27+
import static org.junit.Assert.assertSame;
2728
import static org.junit.Assert.assertTrue;
2829
import static org.junit.Assert.fail;
2930

@@ -110,6 +111,7 @@
110111
import quickfix.field.StrikePrice;
111112
import quickfix.field.Symbol;
112113
import quickfix.field.TargetCompID;
114+
import quickfix.field.TargetSubID;
113115
import quickfix.field.Text;
114116
import quickfix.field.TotNoOrders;
115117
import quickfix.field.TradeDate;
@@ -132,6 +134,7 @@
132134
import quickfix.fix44.component.Instrument;
133135
import quickfix.fix44.component.Parties;
134136
import quickfix.fix50.MarketDataSnapshotFullRefresh;
137+
import quickfix.fixt11.TestRequest;
135138

136139
/**
137140
* NOTE: There are two MessageTests. One in quickfixj-base, one in
@@ -1509,6 +1512,24 @@ public void testFirstFieldInGroupIsDelimiter() throws Exception {
15091512
assertEquals(600, noml5.getGroup(1, 555).delim());
15101513
}
15111514

1515+
@Test
1516+
public void shouldReturnFixSpecificHeader() throws FieldNotFound {
1517+
NewOrderSingle order = new NewOrderSingle();
1518+
assertSame(quickfix.fix42.Message.Header.class, order.getHeader().getClass());
1519+
1520+
order.getHeader().set(new TargetSubID("foo"));
1521+
assertEquals(order.getHeader().getTargetSubID().getValue(), "foo");
1522+
1523+
quickfix.fixlatest.NewOrderSingle fixLatestOrder = new quickfix.fixlatest.NewOrderSingle();
1524+
assertSame(quickfix.fixlatest.Message.Header.class, fixLatestOrder.getHeader().getClass());
1525+
1526+
quickfix.fix50sp1.NewOrderSingle fix50sp1Order = new quickfix.fix50sp1.NewOrderSingle();
1527+
assertSame(quickfix.fix50sp1.Message.Header.class, fix50sp1Order.getHeader().getClass());
1528+
1529+
TestRequest testRequest = new TestRequest();
1530+
assertSame(quickfix.fixt11.Message.Header.class, testRequest.getHeader().getClass());
1531+
}
1532+
15121533
private void assertHeaderField(Message message, String expectedValue, int field)
15131534
throws FieldNotFound {
15141535
assertEquals(expectedValue, message.getHeader().getString(field));

0 commit comments

Comments
 (0)