/* * TeleStax, Open Source Cloud Communications * Copyright 2011-2016, Telestax Inc and individual contributors * by the @authors tag. * * This program is free software: you can redistribute it and/or modify * under the terms of the GNU Affero General Public License as * published by the Free Software Foundation; either version 3 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/> */ package org.mobicents.protocols.ss7.map.service.mobility.subscriberInformation; import org.mobicents.protocols.asn.AsnException; import org.mobicents.protocols.asn.AsnInputStream; import org.mobicents.protocols.asn.AsnOutputStream; import org.mobicents.protocols.asn.Tag; import org.mobicents.protocols.ss7.map.api.MAPException; import org.mobicents.protocols.ss7.map.api.MAPMessageType; import org.mobicents.protocols.ss7.map.api.MAPOperationCode; import org.mobicents.protocols.ss7.map.api.MAPParsingComponentException; import org.mobicents.protocols.ss7.map.api.MAPParsingComponentExceptionReason; import org.mobicents.protocols.ss7.map.api.primitives.MAPExtensionContainer; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.AnyTimeSubscriptionInterrogationResponse; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.CAMELSubscriptionInfo; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.CallBarringData; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.CallForwardingData; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.CallHoldData; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.CallWaitingData; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.ClipData; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.ClirData; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.EctData; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.MSISDNBS; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberInformation.ODBInfo; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.CSGSubscriptionData; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.OfferedCamel4CSIs; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.SupportedCamelPhases; import org.mobicents.protocols.ss7.map.primitives.MAPAsnPrimitive; import org.mobicents.protocols.ss7.map.primitives.MAPExtensionContainerImpl; import org.mobicents.protocols.ss7.map.service.mobility.MobilityMessageImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.CSGSubscriptionDataImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.OfferedCamel4CSIsImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.SupportedCamelPhasesImpl; import java.io.IOException; import java.util.ArrayList; /** * Created by vsubbotin on 24/05/16. */ public class AnyTimeSubscriptionInterrogationResponseImpl extends MobilityMessageImpl implements AnyTimeSubscriptionInterrogationResponse, MAPAsnPrimitive { private static final int _TAG_CALL_FORWARDING_DATA = 1; private static final int _TAG_CALL_BARRING_DATA = 2; private static final int _TAG_ODB_INFO = 3; private static final int _TAG_CAMEL_SUBSCRIPTION_INFO = 4; private static final int _TAG_SUPPORTED_VLR_CAMEL_PHASES = 5; private static final int _TAG_SUPPORTED_SGSN_CAMEL_PHASES = 6; private static final int _TAG_EXTENSION_CONTAINER = 7; private static final int _TAG_OFFERED_CAMEL4_CSI_IS_IN_VLR = 8; private static final int _TAG_OFFERED_CAMEL4_CSI_IS_IS_SGSN = 9; private static final int _TAG_MSISDN_BS_LIST = 10; private static final int _TAG_CSG_SUBSCRIPTION_DATA_LIST = 11; private static final int _TAG_CW_DATA = 12; private static final int _TAG_CH_DATA = 13; private static final int _TAG_CLIP_DATA = 14; private static final int _TAG_CLIR_DATA = 15; private static final int _TAG_ECT_DATA = 16; public static final String _PrimitiveName = "AnyTimeSubscriptionInterrogationResponse"; private CallForwardingData callForwardingData; private CallBarringData callBarringData; private ODBInfo odbInfo; private CAMELSubscriptionInfo camelSubscriptionInfo; private SupportedCamelPhases supportedVlrCamelPhases; private SupportedCamelPhases supportedSgsnCamelPhases; private MAPExtensionContainer extensionContainer; private OfferedCamel4CSIs offeredCamel4CSIsInVlr; private OfferedCamel4CSIs offeredCamel4CSIsInSgsn; private ArrayList<MSISDNBS> msisdnBsList; private ArrayList<CSGSubscriptionData> csgSubscriptionDataList; private CallWaitingData cwData; private CallHoldData chData; private ClipData clipData; private ClirData clirData; private EctData ectData; public AnyTimeSubscriptionInterrogationResponseImpl() { super(); } public AnyTimeSubscriptionInterrogationResponseImpl(CallForwardingData callForwardingData, CallBarringData callBarringData, ODBInfo odbInfo, CAMELSubscriptionInfo camelSubscriptionInfo, SupportedCamelPhases supportedVlrCamelPhases, SupportedCamelPhases supportedSgsnCamelPhases, MAPExtensionContainer extensionContainer, OfferedCamel4CSIs offeredCamel4CSIsInVlr, OfferedCamel4CSIs offeredCamel4CSIsInSgsn, ArrayList<MSISDNBS> msisdnBsList, ArrayList<CSGSubscriptionData> csgSubscriptionDataList, CallWaitingData cwData, CallHoldData chData, ClipData clipData, ClirData clirData, EctData ectData) { super(); this.callForwardingData = callForwardingData; this.callBarringData = callBarringData; this.odbInfo = odbInfo; this.camelSubscriptionInfo = camelSubscriptionInfo; this.supportedVlrCamelPhases = supportedVlrCamelPhases; this.supportedSgsnCamelPhases = supportedSgsnCamelPhases; this.extensionContainer = extensionContainer; this.offeredCamel4CSIsInVlr = offeredCamel4CSIsInVlr; this.offeredCamel4CSIsInSgsn = offeredCamel4CSIsInSgsn; this.msisdnBsList = msisdnBsList; this.csgSubscriptionDataList = csgSubscriptionDataList; this.cwData = cwData; this.chData = chData; this.clipData = clipData; this.clirData = clirData; this.ectData = ectData; } public CallForwardingData getCallForwardingData() { return this.callForwardingData; } public CallBarringData getCallBarringData() { return this.callBarringData; } public ODBInfo getOdbInfo() { return this.odbInfo; } public CAMELSubscriptionInfo getCamelSubscriptionInfo() { return this.camelSubscriptionInfo; } public SupportedCamelPhases getsupportedVlrCamelPhases() { return this.supportedVlrCamelPhases; } public SupportedCamelPhases getsupportedSgsnCamelPhases() { return this.supportedSgsnCamelPhases; } public MAPExtensionContainer getExtensionContainer() { return this.extensionContainer; } public OfferedCamel4CSIs getOfferedCamel4CSIsInVlr() { return this.offeredCamel4CSIsInVlr; } public OfferedCamel4CSIs getOfferedCamel4CSIsInSgsn() { return this.offeredCamel4CSIsInSgsn; } public ArrayList<MSISDNBS> getMsisdnBsList() { return this.msisdnBsList; } public ArrayList<CSGSubscriptionData> getCsgSubscriptionDataList() { return this.csgSubscriptionDataList; } public CallWaitingData getCwData() { return this.cwData; } public CallHoldData getChData() { return this.chData; } public ClipData getClipData() { return this.clipData; } public ClirData getClirData() { return this.clirData; } public EctData getEctData() { return this.ectData; } public int getTag() throws MAPException { return Tag.SEQUENCE; } public int getTagClass() { return Tag.CLASS_UNIVERSAL; } public boolean getIsPrimitive() { return false; } public void decodeAll(AsnInputStream ansIS) throws MAPParsingComponentException { try { int length = ansIS.readLength(); this._decode(ansIS, length); } catch (IOException e) { throw new MAPParsingComponentException("IOException when decoding " + _PrimitiveName + ": " + e.getMessage(), e, MAPParsingComponentExceptionReason.MistypedParameter); } catch (AsnException e) { throw new MAPParsingComponentException("AsnException when decoding " + _PrimitiveName + ": " + e.getMessage(), e, MAPParsingComponentExceptionReason.MistypedParameter); } } public void decodeData(AsnInputStream ansIS, int length) throws MAPParsingComponentException { try { this._decode(ansIS, length); } catch (IOException e) { throw new MAPParsingComponentException("IOException when decoding " + _PrimitiveName + ": " + e.getMessage(), e, MAPParsingComponentExceptionReason.MistypedParameter); } catch (AsnException e) { throw new MAPParsingComponentException("AsnException when decoding " + _PrimitiveName + ": " + e.getMessage(), e, MAPParsingComponentExceptionReason.MistypedParameter); } } private void _decode(AsnInputStream ansIS, int length) throws MAPParsingComponentException, IOException, AsnException { this.callForwardingData = null; this.callBarringData = null; this.odbInfo = null; this.camelSubscriptionInfo = null; this.supportedVlrCamelPhases = null; this.supportedSgsnCamelPhases = null; this.extensionContainer = null; this.offeredCamel4CSIsInVlr = null; this.offeredCamel4CSIsInSgsn = null; this.msisdnBsList = null; this.csgSubscriptionDataList = null; this.cwData = null; this.chData = null; this.clipData = null; this.clirData = null; this.ectData = null; AsnInputStream ais = ansIS.readSequenceStreamData(length); while (true) { if (ais.available() == 0) break; int tag = ais.readTag(); if (ais.getTagClass() == Tag.CLASS_CONTEXT_SPECIFIC) { switch (tag) { case _TAG_CALL_FORWARDING_DATA: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter callForwardingData is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.callForwardingData = new CallForwardingDataImpl(); ((CallForwardingDataImpl)this.callForwardingData).decodeAll(ais); break; case _TAG_CALL_BARRING_DATA: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter callBarringData is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.callBarringData = new CallBarringDataImpl(); ((CallBarringDataImpl)this.callBarringData).decodeAll(ais); break; case _TAG_ODB_INFO: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter odbInfo is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.odbInfo = new ODBInfoImpl(); ((ODBInfoImpl)this.odbInfo).decodeAll(ais); break; case _TAG_CAMEL_SUBSCRIPTION_INFO: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter camelSubscriptionInfo is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.camelSubscriptionInfo = new CAMELSubscriptionInfoImpl(); ((CAMELSubscriptionInfoImpl)this.camelSubscriptionInfo).decodeAll(ais); break; case _TAG_SUPPORTED_VLR_CAMEL_PHASES: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter supportedVlrCamelPhases is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.supportedVlrCamelPhases = new SupportedCamelPhasesImpl(); ((SupportedCamelPhasesImpl)this.supportedVlrCamelPhases).decodeAll(ais); break; case _TAG_SUPPORTED_SGSN_CAMEL_PHASES: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter supportedSgsnCamelPhases is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.supportedSgsnCamelPhases = new SupportedCamelPhasesImpl(); ((SupportedCamelPhasesImpl)this.supportedSgsnCamelPhases).decodeAll(ais); break; case _TAG_EXTENSION_CONTAINER: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter extensionContainer is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.extensionContainer = new MAPExtensionContainerImpl(); ((MAPExtensionContainerImpl)this.extensionContainer).decodeAll(ais); break; case _TAG_OFFERED_CAMEL4_CSI_IS_IN_VLR: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter offeredCamel4CSIsInVlr is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.offeredCamel4CSIsInVlr = new OfferedCamel4CSIsImpl(); ((OfferedCamel4CSIsImpl)this.offeredCamel4CSIsInVlr).decodeAll(ais); break; case _TAG_OFFERED_CAMEL4_CSI_IS_IS_SGSN: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter offeredCamel4CSIsInSgsn is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.offeredCamel4CSIsInSgsn = new OfferedCamel4CSIsImpl(); ((OfferedCamel4CSIsImpl)this.offeredCamel4CSIsInSgsn).decodeAll(ais); break; case _TAG_MSISDN_BS_LIST: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter msisdnBsList is primitive", MAPParsingComponentExceptionReason.MistypedParameter); MSISDNBS msisdnbs; this.msisdnBsList = new ArrayList<MSISDNBS>(); AsnInputStream ais2 = ais.readSequenceStream(); while (true) { if (ais2.available() == 0) break; if (ais2.readTag() != Tag.SEQUENCE || ais2.getTagClass() != Tag.CLASS_UNIVERSAL || ais2.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".msisdnbs: Parameter msisdnbs is primitive", MAPParsingComponentExceptionReason.MistypedParameter); msisdnbs = new MSISDNBSImpl(); ((MSISDNBSImpl)msisdnbs).decodeAll(ais2); this.msisdnBsList.add(msisdnbs); } if (this.msisdnBsList.size() < 1 || this.msisdnBsList.size() > 50) { throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter msisdnBsList size must be from 1 to 50, found: " + this.msisdnBsList.size(), MAPParsingComponentExceptionReason.MistypedParameter); } break; case _TAG_CSG_SUBSCRIPTION_DATA_LIST: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter csgSubscriptionDataList is primitive", MAPParsingComponentExceptionReason.MistypedParameter); CSGSubscriptionData subscriptionData; this.csgSubscriptionDataList = new ArrayList<CSGSubscriptionData>(); ais2 = ais.readSequenceStream(); while (true) { if (ais2.available() == 0) break; if (ais2.readTag() != Tag.SEQUENCE || ais2.getTagClass() != Tag.CLASS_UNIVERSAL || ais2.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".subscriptionData: Parameter subscriptionData is primitive", MAPParsingComponentExceptionReason.MistypedParameter); subscriptionData = new CSGSubscriptionDataImpl(); ((CSGSubscriptionDataImpl)subscriptionData).decodeAll(ais2); this.csgSubscriptionDataList.add(subscriptionData); } if (this.csgSubscriptionDataList.size() < 1 || this.csgSubscriptionDataList.size() > 50) { throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter csgSubscriptionDataList size must be from 1 to 50, found: " + this.csgSubscriptionDataList.size(), MAPParsingComponentExceptionReason.MistypedParameter); } break; case _TAG_CW_DATA: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter cwData is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.cwData = new CallWaitingDataImpl(); ((CallWaitingDataImpl)this.cwData).decodeAll(ais); break; case _TAG_CH_DATA: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter chData is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.chData = new CallHoldDataImpl(); ((CallHoldDataImpl)this.chData).decodeAll(ais); break; case _TAG_CLIP_DATA: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter clipData is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.clipData = new ClipDataImpl(); ((ClipDataImpl)this.clipData).decodeAll(ais); break; case _TAG_CLIR_DATA: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter clirData is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.clirData = new ClirDataImpl(); ((ClirDataImpl)this.clirData).decodeAll(ais); break; case _TAG_ECT_DATA: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter imsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.ectData = new EctDataImpl(); ((EctDataImpl)this.ectData).decodeAll(ais); break; default: ais.advanceElement(); break; } } else { ais.advanceElement(); } } } public void encodeAll(AsnOutputStream asnOs) throws MAPException { this.encodeAll(asnOs, this.getTagClass(), this.getTag()); } public void encodeAll(AsnOutputStream asnOs, int tagClass, int tag) throws MAPException { try { asnOs.writeTag(tagClass, this.getIsPrimitive(), tag); int pos = asnOs.StartContentDefiniteLength(); this.encodeData(asnOs); asnOs.FinalizeContent(pos); } catch (AsnException e) { throw new MAPException("AsnException when encoding " + _PrimitiveName + " : " + e.getMessage(), e); } } public void encodeData(AsnOutputStream asnOs) throws MAPException { if (this.callForwardingData != null) { ((CallForwardingDataImpl)this.callForwardingData).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_CALL_FORWARDING_DATA); } if (callBarringData != null) { ((CallBarringDataImpl)this.callBarringData).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_CALL_BARRING_DATA); } if (this.odbInfo != null) { ((ODBInfoImpl)this.odbInfo).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_ODB_INFO); } if (this.camelSubscriptionInfo != null) { ((CAMELSubscriptionInfoImpl)this.camelSubscriptionInfo).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_CAMEL_SUBSCRIPTION_INFO); } if (this.supportedVlrCamelPhases != null) { ((SupportedCamelPhasesImpl)this.supportedVlrCamelPhases).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_SUPPORTED_VLR_CAMEL_PHASES); } if (this.supportedSgsnCamelPhases != null) { ((SupportedCamelPhasesImpl)this.supportedSgsnCamelPhases).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_SUPPORTED_SGSN_CAMEL_PHASES); } if (this.extensionContainer != null) { ((MAPExtensionContainerImpl)this.extensionContainer).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_EXTENSION_CONTAINER); } if (this.offeredCamel4CSIsInVlr != null) { ((OfferedCamel4CSIsImpl)this.offeredCamel4CSIsInVlr).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_OFFERED_CAMEL4_CSI_IS_IN_VLR); } if (this.offeredCamel4CSIsInSgsn != null) { ((OfferedCamel4CSIsImpl)this.offeredCamel4CSIsInSgsn).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_OFFERED_CAMEL4_CSI_IS_IS_SGSN); } try { if (this.msisdnBsList != null) { if (this.msisdnBsList.size() < 1 || this.msisdnBsList.size() > 50) { throw new MAPException("Error while encoding " + _PrimitiveName + " size msisdnBsList is out of range (1..50). Actual size: " + this.msisdnBsList.size()); } asnOs.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG_MSISDN_BS_LIST); int pos = asnOs.StartContentDefiniteLength(); for (MSISDNBS msisdnbs: this.msisdnBsList) { ((MSISDNBSImpl)msisdnbs).encodeAll(asnOs); } asnOs.FinalizeContent(pos); } } catch (AsnException ae) { throw new MAPException("AsnException when encoding " + _PrimitiveName + ": " + ae.getMessage(), ae); } try { if (this.csgSubscriptionDataList != null) { if (this.csgSubscriptionDataList.size() < 1 || this.csgSubscriptionDataList.size() > 50) { throw new MAPException("Error while encoding " + _PrimitiveName + " size csgSubscriptionDataList is out of range (1..50). Actual size: " + this.csgSubscriptionDataList.size()); } asnOs.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG_CSG_SUBSCRIPTION_DATA_LIST); int pos = asnOs.StartContentDefiniteLength(); for (CSGSubscriptionData subscriptionData: this.csgSubscriptionDataList) { ((CSGSubscriptionDataImpl)subscriptionData).encodeAll(asnOs); } asnOs.FinalizeContent(pos); } } catch (AsnException ae) { throw new MAPException("AsnException when encoding " + _PrimitiveName + ": " + ae.getMessage(), ae); } if (this.cwData != null) { ((CallWaitingDataImpl)this.cwData).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_CW_DATA); } if (this.chData != null) { ((CallHoldDataImpl)this.chData).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_CH_DATA); } if (this.clipData != null) { ((ClipDataImpl)this.clipData).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_CLIP_DATA); } if (this.clirData != null) { ((ClirDataImpl)this.clirData).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_CLIR_DATA); } if (this.ectData != null) { ((EctDataImpl)this.ectData).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_ECT_DATA); } } public MAPMessageType getMessageType() { return MAPMessageType.anyTimeSubscriptionInterrogation_Response; } public int getOperationCode() { return MAPOperationCode.anyTimeSubscriptionInterrogation; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(_PrimitiveName); sb.append(" ["); if (this.callForwardingData != null) { sb.append("callForwardingData="); sb.append(this.callForwardingData); } if (this.callBarringData != null) { sb.append(", callBarringData="); sb.append(this.callBarringData); } if (this.odbInfo != null) { sb.append(", odbInfo="); sb.append(this.odbInfo); } if (this.camelSubscriptionInfo != null) { sb.append(", camelSubscriptionInfo="); sb.append(this.camelSubscriptionInfo); } if (this.supportedVlrCamelPhases != null) { sb.append(", supportedVlrCamelPhases="); sb.append(this.supportedVlrCamelPhases); } if (this.supportedSgsnCamelPhases != null) { sb.append(", supportedSgsnCamelPhases="); sb.append(this.supportedSgsnCamelPhases); } if (this.extensionContainer != null) { sb.append(", extensionContainer="); sb.append(this.extensionContainer); } if (this.offeredCamel4CSIsInVlr != null) { sb.append(", offeredCamel4CSIsInVlr="); sb.append(this.offeredCamel4CSIsInVlr); } if (this.offeredCamel4CSIsInSgsn != null) { sb.append(", offeredCamel4CSIsInSgsn="); sb.append(this.offeredCamel4CSIsInSgsn); } if (this.msisdnBsList != null) { sb.append(", msisdnBsList=["); boolean firstItem = true; for (MSISDNBS msisdnbs: msisdnBsList) { if (firstItem) { firstItem = false; } else { sb.append(", "); } sb.append(msisdnbs); } sb.append("], "); } if (this.csgSubscriptionDataList != null) { sb.append(", csgSubscriptionDataList=["); boolean firstItem = true; for (CSGSubscriptionData csgSubscriptionData: csgSubscriptionDataList) { if (firstItem) { firstItem = false; } else { sb.append(", "); } sb.append(csgSubscriptionData); } sb.append("], "); } if (this.cwData != null) { sb.append(", cwData="); sb.append(this.cwData); } if (this.chData != null) { sb.append(", chData="); sb.append(this.chData); } if (this.clipData != null) { sb.append(", clipData="); sb.append(this.clipData); } if (this.clirData != null) { sb.append(", clirData="); sb.append(this.clirData); } if (this.ectData != null) { sb.append(", imsi="); sb.append(this.ectData); } sb.append("]"); return sb.toString(); } }