@@ -53,38 +53,41 @@ import quickfix.Group;
5353public class MessageFactory implements quickfix.MessageFactory {
5454
5555 public Message create(String beginString, String msgType) {
56- <xsl : call-template name =" if -statement" />
56+ <xsl : call-template name =" switch -statement" />
5757 return new <xsl : value-of select =" $messagePackage" />.Message();
5858 }
5959
6060 public Group create(String beginString, String msgType, int correspondingFieldID) {
61- <xsl : call-template name =" group-if -statement" />
61+ <xsl : call-template name =" group-switch -statement" />
6262 return null;
6363 }
6464}
6565</xsl : template >
6666
67- <xsl : template name =" if-statement" >
67+ <xsl : template name =" switch-statement" >
68+ switch (msgType) {
6869 <xsl : for-each select =" //fix/messages/message" >
69- if (<xsl : value-of select =" $messagePackage" />.<xsl : value-of select =" @name" />.MSGTYPE.equals(msgType)) {
70- return new <xsl : value-of select =" $messagePackage" />.<xsl : value-of select =" @name" />();
71- }
70+ case <xsl : value-of select =" $messagePackage" />.<xsl : value-of select =" @name" />.MSGTYPE:
71+ return new <xsl : value-of select =" $messagePackage" />.<xsl : value-of select =" @name" />();
7272 </xsl : for-each >
73+ }
7374</xsl : template >
7475
75- <xsl : template name =" group-if-statement" >
76+ <xsl : template name =" group-switch-statement" >
77+ switch (msgType) {
7678 <xsl : for-each select =" //fix/messages/message[group or component]" >
77- if ( <xsl : value-of select =" $messagePackage" />.<xsl : value-of select =" @name" />.MSGTYPE.equals(msgType)) {
78- switch (correspondingFieldID) {
79+ case <xsl : value-of select =" $messagePackage" />.<xsl : value-of select =" @name" />.MSGTYPE:
80+ switch (correspondingFieldID) {
7981 <xsl : apply-templates mode =" group-factories" select =" group" >
8082 <xsl : with-param name =" fullPath" select =" @name" />
8183 </xsl : apply-templates >
8284 <xsl : apply-templates mode =" group-factories" select =" component" >
8385 <xsl : with-param name =" fullPath" select =" @name" />
8486 </xsl : apply-templates >
85- }
86- }
87+ }
88+ break;
8789 </xsl : for-each >
90+ }
8891</xsl : template >
8992
9093<xsl : template mode =" group-factories" match =" group" >
0 commit comments