FIX.5.0SP2 Message
SequenceReset [type '4']
The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side.
实现:
cs.mina.codec.msg; java.util.HashSet; java.util.List; java.util.Set; cs.mina.exception.InValidDataException; BaseMsg { Tag gapFillFlag Tag(,,); Tag newSeqNo Tag(,,); Set tagIdsSet HashSet(); SequenceResetMsg(){ tagIdsSet.add(); tagIdsSet.add(); .getBodyEntity().getBodyTagList().add(gapFillFlag); .getBodyEntity().getBodyTagList().add(newSeqNo); } decodeBody() { Set already HashSet(); [] bodyItems.body.split(BaseMsg.SOH); ( i;ibodyItems.length;i){ []tagItemsbodyItems[i].split(); (tagItems.length){ InValidDataException(); } tagIdtagItems[]; (already.contains(tagId)){ InValidDataException(); } already.add(tagId); (.tagIdsSet.contains(tagId)){ ListTag tagList.bodyEntity.getBodyTagList(); ( j;jtagList.size();j){ Tag tagtagList.get(j); (tag.getTagId().equals(tagId)){ tag.setTagValue(tagItems[]); ; } } }{ InValidDataException(tagId); } } } validate() { .headEntity.validate(); ListTag bodyTagList.bodyEntity.getBodyTagList(); ( i;ibodyTagList.size();i){ bodyTagList.get(i).validate(); } .tailerEntity.validate(); } Tag getGapFillFlag() { gapFillFlag; } setGapFillFlag(Tag gapFillFlag) { .gapFillFlag gapFillFlag; } Tag getNewSeqNo() { newSeqNo; } setNewSeqNo(Tag newSeqNo) { .newSeqNo newSeqNo; } Set getTagIdsSet() { tagIdsSet; } setTagIdsSet(Set tagIdsSet) { .tagIdsSet tagIdsSet; } }