gt:     protected String getUnsupportedTagMessage() {
context: /*
   *   Copyright (c) 2006-2016 Marvisan Pty. Ltd. All rights reserved.
   *               Use is subject to license terms.
   */
  
  /*
   * SideCrossOrdCxlGroup50SP2.java
   *
   * $Id: SideCrossOrdCxlGroup50SP2.java,v 1.1 2011-05-21 23:53:23 vrotaru Exp $
   */
  package net.hades.fix.message.group.impl.v50sp2;
  
  import net.hades.fix.message.FragmentContext;
  import net.hades.fix.message.comp.OrderQtyData;
  import net.hades.fix.message.comp.Parties;
  import net.hades.fix.message.comp.impl.v50sp2.OrderQtyData50SP2;
  import net.hades.fix.message.comp.impl.v50sp2.Parties50SP2;
  import net.hades.fix.message.exception.BadFormatMsgException;
  import net.hades.fix.message.exception.InvalidMsgException;
  import net.hades.fix.message.exception.TagNotPresentException;
  import net.hades.fix.message.group.PartyGroup;
  import net.hades.fix.message.group.SideCrossOrdCxlGroup;
  import net.hades.fix.message.struct.Tag;
  import net.hades.fix.message.type.Side;
  
  import java.nio.ByteBuffer;
  import java.util.Date;
  import java.util.HashSet;
  import java.util.Set;
  
  import javax.xml.bind.annotation.XmlAccessType;
  import javax.xml.bind.annotation.XmlAccessorType;
  import javax.xml.bind.annotation.XmlAttribute;
  import javax.xml.bind.annotation.XmlElementRef;
  import javax.xml.bind.annotation.XmlRootElement;
  import javax.xml.bind.annotation.XmlType;
  import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
  
  import net.hades.fix.message.xml.codec.jaxb.adapter.FixDateAdapter;
  
  /**
   * FIX 5.0SP2 implementation of SideCrossOrdCxlGroup group.
   *
   * @author <a href="mailto:support@marvisan.com">Support Team</a>
   * @version $Revision: 1.1 $
   * @created 20/05/2011, 7:22:35 PM
   */
  @XmlRootElement(name="SideCrossCxl")
  @XmlType(propOrder = {"partyIDGroups","orderQtyData"})
  @XmlAccessorType(XmlAccessType.NONE)
  public class SideCrossOrdCxlGroup50SP2 extends SideCrossOrdCxlGroup {
      
      // <editor-fold defaultstate="collapsed" desc="Constants">
  
      private static final long serialVersionUID = 1L;
  
      protected static final Set<Integer> START_COMP_TAGS;
  
      protected static final Set<Integer> ALL_TAGS;
  
      protected static final Set<Integer> PARTIES_COMP_TAGS = new Parties50SP2().getFragmentAllTags();
      protected static final Set<Integer> ORDER_QTY_DATA_COMP_TAGS = new OrderQtyData50SP2().getFragmentAllTags();
      
      // </editor-fold>
      
      // <editor-fold defaultstate="collapsed" desc="Static Block">
      
      static {
          ALL_TAGS = new HashSet<Integer>(TAGS);
          ALL_TAGS.addAll(START_DATA_TAGS);
          ALL_TAGS.addAll(PARTIES_COMP_TAGS);
          ALL_TAGS.addAll(ORDER_QTY_DATA_COMP_TAGS);
          START_COMP_TAGS = new HashSet<Integer>(PARTIES_COMP_TAGS);
          START_COMP_TAGS.addAll(ORDER_QTY_DATA_COMP_TAGS);
      }
      
      // </editor-fold>
      
      // <editor-fold defaultstate="collapsed" desc="Attributes">
      // </editor-fold>
      
      // <editor-fold defaultstate="collapsed" desc="Constructors">
      
      public SideCrossOrdCxlGroup50SP2() {
      }
      
      public SideCrossOrdCxlGroup50SP2(FragmentContext context) {
          super(context);
      }
      
      // </editor-fold>
      
      // <editor-fold defaultstate="collapsed" desc="Public Methods">
  
      @Override
      public Set<Integer> getFragmentAllTags() {
          return ALL_TAGS;
      }
  
      // ACCESSOR METHODS
      //////////////////////////////////////////
  
      @XmlAttribute(name = "Side")
      @Override
      public Side getSide() {
          return side;
      }
  
      @Override
      public void setSide(Side side) {
          this.side = side;
      }
  
      @XmlAttribute(name = "OrigClOrdID")
      @Override
      public String getOrigClOrdID() {
          return origClOrdID;
      }
  
      @Override
      public void setOrigClOrdID(String origClOrdID) {
          this.origClOrdID = origClOrdID;
      }
  
      @XmlAttribute(name = "ClOrdID")
      @Override
      public String getClOrdID() {
          return clOrdID;
      }
  
      @Override
      public void setClOrdID(String clOrdID) {
          this.clOrdID = clOrdID;
      }
  
      @XmlAttribute(name = "ClOrdID2")
      @Override
      public String getSecondaryClOrdID() {
          return secondaryClOrdID;
      }
  
      @Override
      public void setSecondaryClOrdID(String secondaryClOrdID) {
          this.secondaryClOrdID = secondaryClOrdID;
      }
  
      @XmlAttribute(name = "ClOrdLinkID")
      @Override
      public String getClOrdLinkID() {
          return clOrdLinkID;
      }
  
      @Override
      public void setClOrdLinkID(String clOrdLinkID) {
          this.clOrdLinkID = clOrdLinkID;
      }
  
      @Override
      public Parties getParties() {
          return parties;
      }
  
      @Override
      public void setParties() {
          FragmentContext context = new FragmentContext(sessionCharset, messageEncoding, validateRequired);
          this.parties = new Parties50SP2(context);
      }
  
      @Override
      public void clearParties() {
          this.parties = null;
      }
  
      public void setParties(Parties parties) {
          this.parties = parties;
      }
  
      @XmlElementRef
      public PartyGroup[] getPartyIDGroups() {
          return parties == null ? null : parties.getPartyIDGroups();
      }
  
      public void setPartyIDGroups(PartyGroup[] partyIDGroups) {
          if (partyIDGroups != null) {
              if (parties == null) {
                  setParties();
              }
              ((Parties50SP2) parties).setPartyIDGroups(partyIDGroups);
          }
      }
  
      @XmlAttribute(name = "OrignDt")
      @XmlJavaTypeAdapter(FixDateAdapter.class)
      @Override
      public Date getTradeOriginationDate() {
          return tradeOriginationDate;
      }
  
      @Override
      public void setTradeOriginationDate(Date tradeOriginationDate) {
          this.tradeOriginationDate = tradeOriginationDate;
      }
  
      @XmlAttribute(name = "TrdDt")
      @XmlJavaTypeAdapter(FixDateAdapter.class)
      @Override
      public Date getTradeDate() {
          return tradeDate;
      }
  
      @Override
      public void setTradeDate(Date tradeDate) {
          this.tradeDate = tradeDate;
      }
  
      @XmlElementRef
      @Override
      public OrderQtyData getOrderQtyData() {
          return orderQtyData;
      }
  
      @Override
      public void setOrderQtyData() {
          FragmentContext context = new FragmentContext(sessionCharset, messageEncoding, validateRequired);
          this.orderQtyData = new OrderQtyData50SP2(context);
      }
  
      @Override
      public void clearOrderQtyData() {
          this.orderQtyData = null;
      }
  
      public void setOrderQtyData(OrderQtyData orderQtyData) {
          this.orderQtyData = orderQtyData;
      }
  
      @XmlAttribute(name = "ComplianceID")
      @Override
      public String getComplianceID() {
          return complianceID;
      }
  
      @Override
      public void setComplianceID(String complianceID) {
          this.complianceID = complianceID;
      }
  
      @XmlAttribute(name = "Txt")
      @Override
      public String getText() {
          return text;
      }
  
      @Override
      public void setText(String text) {
          this.text = text;
      }
  
      @XmlAttribute(name = "EncTxtLen")
      @Override
      public Integer getEncodedTextLen() {
          return encodedTextLen;
      }
  
      @Override
      public void setEncodedTextLen(Integer encodedTextLen) {
          this.encodedTextLen = encodedTextLen;
      }
  
      @XmlAttribute(name = "EncTxt")
      @Override
      public byte[] getEncodedText() {
          return encodedText;
      }
  
      @Override
      public void setEncodedText(byte[] encodedText) {
          this.encodedText = encodedText;
          if (encodedTextLen == null) {
              encodedTextLen = new Integer(encodedText.length);
          }
      }
  
      // </editor-fold>
      
      // <editor-fold defaultstate="collapsed" desc="Protected Methods">
      
      @Override
      protected void setFragmentCompTagValue(Tag tag, ByteBuffer message)
          throws BadFormatMsgException, InvalidMsgException, TagNotPresentException {
          FragmentContext context = new FragmentContext(sessionCharset, messageEncoding, validateRequired);
          if (PARTIES_COMP_TAGS.contains(tag.tagNum)) {
              if (parties == null) {
                  parties = new Parties50SP2(context);
              }
              parties.decode(tag, message);
          }
          if (ORDER_QTY_DATA_COMP_TAGS.contains(tag.tagNum)) {
              if (orderQtyData == null) {
                  orderQtyData = new OrderQtyData50SP2(context);
              }
              orderQtyData.decode(tag, message);
          }
      }
      
      @Override
      protected Set<Integer> getFragmentCompTags() {
          return START_COMP_TAGS;
      }
  
      @Override
      protected Set<Integer> getFragmentSecuredTags() {
          return SECURED_TAGS;
      }
      
      @Override
  