/* * 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.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.CAMELSubscriptionInfo; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.DCSI; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.GPRSCSI; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.MCSI; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.MGCSI; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.MTsmsCAMELTDPCriteria; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.OBcsmCamelTdpCriteria; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.OCSI; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.SMSCSI; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.SSCSI; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.SpecificCSIWithdraw; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.TBcsmCamelTdpCriteria; import org.mobicents.protocols.ss7.map.api.service.mobility.subscriberManagement.TCSI; import org.mobicents.protocols.ss7.map.primitives.MAPExtensionContainerImpl; import org.mobicents.protocols.ss7.map.primitives.SequenceBase; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.DCSIImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.GPRSCSIImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.MCSIImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.MGCSIImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.MTsmsCAMELTDPCriteriaImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.OBcsmCamelTdpCriteriaImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.OCSIImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.SMSCSIImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.SSCSIImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.SpecificCSIWithdrawImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.TBcsmCamelTdpCriteriaImpl; import org.mobicents.protocols.ss7.map.service.mobility.subscriberManagement.TCSIImpl; import java.io.IOException; import java.util.ArrayList; /** * Created by vsubbotin on 25/05/16. */ public class CAMELSubscriptionInfoImpl extends SequenceBase implements CAMELSubscriptionInfo { private static final int _TAG_O_CSI = 0; private static final int _TAG_O_BSCM_CAMEL_TDP_CRITERIA_LIST = 1; private static final int _TAG_D_CSI = 2; private static final int _TAG_T_CSI = 3; private static final int _TAG_T_BCSM_CAMEL_TDP_CRITERIA_LIST = 4; private static final int _TAG_VT_CSI = 5; private static final int _TAG_VT_BCSM_CAMEL_TDP_CRITERIA_LIST = 6; private static final int _TAG_TIF_CSI = 7; private static final int _TAG_TIF_CSI_NOTIFICATION_TO_CSE = 8; private static final int _TAG_GPRS_CSI = 9; private static final int _TAG_MO_SMS_CSI = 10; private static final int _TAG_SS_CSI = 11; private static final int _TAG_M_CSI = 12; private static final int _TAG_EXTENSION_CONTAINTER = 13; private static final int _TAG_SPECIFIC_CSI_DELETE_LIST = 14; private static final int _TAG_MT_SMS_CSI = 15; private static final int _TAG_MT_SMS_CAMEL_TDP_CRITERIA_LIST = 16; private static final int _TAG_MG_CSI = 17; private static final int _TAG_O_IM_SCI = 18; private static final int _TAG_O_IM_BCSM_CAMEL_TDP_CRITERIA_LIST = 19; private static final int _TAG_D_IM_CSI = 20; private static final int _TAG_VT_IM_CSI = 21; private static final int _TAG_VT_IM_BCSM_CAMEL_TDP_CRITERIA_LIST = 22; public static final String _PrimitiveName = "CAMELSubscriptionInfo"; private OCSI oCsi; private ArrayList<OBcsmCamelTdpCriteria> oBcsmCamelTDPCriteriaList; private DCSI dCsi; private TCSI tCsi; private ArrayList<TBcsmCamelTdpCriteria> tBcsmCamelTdpCriteriaList; private TCSI vtCsi; private ArrayList<TBcsmCamelTdpCriteria> vtBcsmCamelTdpCriteriaList; private boolean tifCsi; private boolean tifCsiNotificationToCSE; private GPRSCSI gprsCsi; private SMSCSI moSmsCsi; private SSCSI ssCsi; private MCSI mCsi; private MAPExtensionContainer extensionContainer; private SpecificCSIWithdraw specificCSIDeletedList; private SMSCSI mtSmsCsi; private ArrayList<MTsmsCAMELTDPCriteria> mtSmsCamelTdpCriteriaList; private MGCSI mgCsi; private OCSI oImCsi; private ArrayList<OBcsmCamelTdpCriteria> oImBcsmCamelTdpCriteriaList; private DCSI dImCsi; private TCSI vtImCsi; private ArrayList<TBcsmCamelTdpCriteria> vtImBcsmCamelTdpCriteriaList; public CAMELSubscriptionInfoImpl() { super(_PrimitiveName); } public CAMELSubscriptionInfoImpl(OCSI oCsi, ArrayList<OBcsmCamelTdpCriteria> oBcsmCamelTDPCriteriaList, DCSI dCsi, TCSI tCsi, ArrayList<TBcsmCamelTdpCriteria> tBcsmCamelTdpCriteriaList, TCSI vtCsi, ArrayList<TBcsmCamelTdpCriteria> vtBcsmCamelTdpCriteriaList, boolean tifCsi, boolean tifCsiNotificationToCSE, GPRSCSI gprsCsi, SMSCSI moSmsCsi, SSCSI ssCsi, MCSI mCsi, MAPExtensionContainer extensionContainer, SpecificCSIWithdraw specificCSIDeletedList, SMSCSI mtSmsCsi, ArrayList<MTsmsCAMELTDPCriteria> mtSmsCamelTdpCriteriaList, MGCSI mgCsi, OCSI oImCsi, ArrayList<OBcsmCamelTdpCriteria> oImBcsmCamelTdpCriteriaList, DCSI dImCsi, TCSI vtImCsi, ArrayList<TBcsmCamelTdpCriteria> vtImBcsmCamelTdpCriteriaList) { super(_PrimitiveName); this.oCsi = oCsi; this.oBcsmCamelTDPCriteriaList = oBcsmCamelTDPCriteriaList; this.dCsi = dCsi; this.tCsi = tCsi; this.tBcsmCamelTdpCriteriaList = tBcsmCamelTdpCriteriaList; this.vtCsi = vtCsi; this.vtBcsmCamelTdpCriteriaList = vtBcsmCamelTdpCriteriaList; this.tifCsi = tifCsi; this.tifCsiNotificationToCSE = tifCsiNotificationToCSE; this.gprsCsi = gprsCsi; this.moSmsCsi = moSmsCsi; this.ssCsi = ssCsi; this.mCsi = mCsi; this.extensionContainer = extensionContainer; this.specificCSIDeletedList = specificCSIDeletedList; this.mtSmsCsi = mtSmsCsi; this.mtSmsCamelTdpCriteriaList = mtSmsCamelTdpCriteriaList; this.mgCsi = mgCsi; this.oImCsi = oImCsi; this.oImBcsmCamelTdpCriteriaList = oImBcsmCamelTdpCriteriaList; this.dImCsi = dImCsi; this.vtImCsi = vtImCsi; this.vtImBcsmCamelTdpCriteriaList = vtImBcsmCamelTdpCriteriaList; } public OCSI getOCsi() { return this.oCsi; } public ArrayList<OBcsmCamelTdpCriteria> getOBcsmCamelTDPCriteriaList() { return this.oBcsmCamelTDPCriteriaList; } public DCSI getDCsi() { return this.dCsi; } public TCSI getTCsi() { return this.tCsi; } public ArrayList<TBcsmCamelTdpCriteria> getTBcsmCamelTdpCriteriaList() { return this.tBcsmCamelTdpCriteriaList; } public TCSI getVtCsi() { return this.vtCsi; } public ArrayList<TBcsmCamelTdpCriteria> getVtBcsmCamelTdpCriteriaList() { return this.vtBcsmCamelTdpCriteriaList; } public boolean getTifCsi() { return this.tifCsi; } public boolean getTifCsiNotificationToCSE() { return this.tifCsiNotificationToCSE; } public GPRSCSI getGprsCsi() { return this.gprsCsi; } public SMSCSI getMoSmsCsi() { return this.moSmsCsi; } public SSCSI getSsCsi() { return this.ssCsi; } public MCSI getMCsi() { return this.mCsi; } public MAPExtensionContainer getExtensionContainer() { return this.extensionContainer; } public SpecificCSIWithdraw getSpecificCSIDeletedList() { return this.specificCSIDeletedList; } public SMSCSI getMtSmsCsi() { return this.mtSmsCsi; } public ArrayList<MTsmsCAMELTDPCriteria> getMtSmsCamelTdpCriteriaList() { return this.mtSmsCamelTdpCriteriaList; } public MGCSI getMgCsi() { return this.mgCsi; } public OCSI geToImCsi() { return this.oImCsi; } public ArrayList<OBcsmCamelTdpCriteria> getOImBcsmCamelTdpCriteriaList() { return this.oImBcsmCamelTdpCriteriaList; } public DCSI getDImCsi() { return this.dImCsi; } public TCSI getVtImCsi() { return this.vtImCsi; } public ArrayList<TBcsmCamelTdpCriteria> getVtImBcsmCamelTdpCriteriaList() { return this.vtImBcsmCamelTdpCriteriaList; } public boolean getIsPrimitive() { return false; } protected void _decode(AsnInputStream asnIS, int length) throws MAPParsingComponentException, IOException, AsnException { this.oCsi = null; this.oBcsmCamelTDPCriteriaList = null; this.dCsi = null; this.tCsi = null; this.tBcsmCamelTdpCriteriaList = null; this.vtCsi = null; this.vtBcsmCamelTdpCriteriaList = null; this.tifCsi = false; this.tifCsiNotificationToCSE = false; this.gprsCsi = null; this.moSmsCsi = null; this.ssCsi = null; this.mCsi = null; this.extensionContainer = null; this.specificCSIDeletedList = null; this.mtSmsCsi = null; this.mtSmsCamelTdpCriteriaList = null; this.mgCsi = null; this.oImCsi = null; this.oImBcsmCamelTdpCriteriaList = null; this.dImCsi = null; this.vtImCsi = null; this.vtImBcsmCamelTdpCriteriaList = null; AsnInputStream ais = asnIS.readSequenceStreamData(length); while (true) { if (ais.available() == 0) { break; } int tag = ais.readTag(); if (ais.getTagClass() == Tag.CLASS_CONTEXT_SPECIFIC) { switch (tag) { case _TAG_O_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter oCsi not primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.oCsi = new OCSIImpl(); ((OCSIImpl)this.oCsi).decodeAll(ais); break; case _TAG_O_BSCM_CAMEL_TDP_CRITERIA_LIST: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".oBcsmCamelTDPCriteriaList: Parameter oBcsmCamelTDPCriteriaList is primitive", MAPParsingComponentExceptionReason.MistypedParameter); OBcsmCamelTdpCriteria oBcsmCamelTdpCriteria; AsnInputStream ais2 = ais.readSequenceStream(); this.oBcsmCamelTDPCriteriaList = new ArrayList<OBcsmCamelTdpCriteria>(); 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 + ".oBcsmCamelTdpCriteria: Parameter oBcsmCamelTdpCriteria is primitive", MAPParsingComponentExceptionReason.MistypedParameter); oBcsmCamelTdpCriteria = new OBcsmCamelTdpCriteriaImpl(); ((OBcsmCamelTdpCriteriaImpl)oBcsmCamelTdpCriteria).decodeAll(ais2); this.oBcsmCamelTDPCriteriaList.add(oBcsmCamelTdpCriteria); } if (this.oBcsmCamelTDPCriteriaList.size() < 1 || this.oBcsmCamelTDPCriteriaList.size() > 10) { throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter oBcsmCamelTDPCriteriaList size must be from 1 to 10, found: " + this.oBcsmCamelTDPCriteriaList.size(), MAPParsingComponentExceptionReason.MistypedParameter); } break; case _TAG_D_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".dCsi: Parameter dCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.dCsi = new DCSIImpl(); ((DCSIImpl)this.dCsi).decodeAll(ais); break; case _TAG_T_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".tCsi: Parameter tCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.tCsi = new TCSIImpl(); ((TCSIImpl)this.tCsi).decodeAll(ais); break; case _TAG_T_BCSM_CAMEL_TDP_CRITERIA_LIST: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".tBcsmCamelTdpCriteriaList: Parameter tBcsmCamelTdpCriteriaList is primitive", MAPParsingComponentExceptionReason.MistypedParameter); TBcsmCamelTdpCriteria tBcsmCamelTdpCriteria; this.tBcsmCamelTdpCriteriaList = new ArrayList<TBcsmCamelTdpCriteria>(); 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 + ".tBcsmCamelTdpCriteria: Parameter tBcsmCamelTdpCriteria is primitive", MAPParsingComponentExceptionReason.MistypedParameter); tBcsmCamelTdpCriteria = new TBcsmCamelTdpCriteriaImpl(); ((TBcsmCamelTdpCriteriaImpl)tBcsmCamelTdpCriteria).decodeAll(ais2); this.tBcsmCamelTdpCriteriaList.add(tBcsmCamelTdpCriteria); } if (this.tBcsmCamelTdpCriteriaList.size() < 1 || this.tBcsmCamelTdpCriteriaList.size() > 10) { throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter tBcsmCamelTdpCriteriaList size must be from 1 to 10, found: " + this.tBcsmCamelTdpCriteriaList.size(), MAPParsingComponentExceptionReason.MistypedParameter); } break; case _TAG_VT_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".vtCsi: Parameter vtCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.vtCsi = new TCSIImpl(); ((TCSIImpl)this.vtCsi).decodeAll(ais); break; case _TAG_VT_BCSM_CAMEL_TDP_CRITERIA_LIST: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".vtBcsmCamelTdpCriteriaList: Parameter vtBcsmCamelTdpCriteriaList is primitive", MAPParsingComponentExceptionReason.MistypedParameter); TBcsmCamelTdpCriteria vtBcsmCamelTdpCriteria; this.vtBcsmCamelTdpCriteriaList = new ArrayList<TBcsmCamelTdpCriteria>(); 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 + ".vtBcsmCamelTdpCriteria: Parameter vtBcsmCamelTdpCriteria is primitive", MAPParsingComponentExceptionReason.MistypedParameter); vtBcsmCamelTdpCriteria = new TBcsmCamelTdpCriteriaImpl(); ((TBcsmCamelTdpCriteriaImpl)vtBcsmCamelTdpCriteria).decodeAll(ais2); this.vtBcsmCamelTdpCriteriaList.add(vtBcsmCamelTdpCriteria); } if (this.vtBcsmCamelTdpCriteriaList.size() < 1 || this.vtBcsmCamelTdpCriteriaList.size() > 10) { throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter vtBcsmCamelTdpCriteriaList size must be from 1 to 10, found: " + this.vtBcsmCamelTdpCriteriaList.size(), MAPParsingComponentExceptionReason.MistypedParameter); } break; case _TAG_TIF_CSI: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".tifCsi: Parameter tifCsi is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); ais.readNull(); this.tifCsi = Boolean.TRUE; break; case _TAG_TIF_CSI_NOTIFICATION_TO_CSE: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".tifCsiNotificationToCSE: Parameter tifCsiNotificationToCSE is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); ais.readNull(); this.tifCsiNotificationToCSE = Boolean.TRUE; break; case _TAG_GPRS_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".gprsCsi: Parameter gprsCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.gprsCsi = new GPRSCSIImpl(); ((GPRSCSIImpl)this.gprsCsi).decodeAll(ais); break; case _TAG_MO_SMS_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".moSmsCsi: Parameter moSmsCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.moSmsCsi = new SMSCSIImpl(); ((SMSCSIImpl)this.moSmsCsi).decodeAll(ais); break; case _TAG_SS_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".ssCsi: Parameter ssCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.ssCsi = new SSCSIImpl(); ((SSCSIImpl)this.ssCsi).decodeAll(ais); break; case _TAG_M_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".mCsi: Parameter mCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.mCsi = new MCSIImpl(); ((MCSIImpl)this.mCsi).decodeAll(ais); break; case _TAG_EXTENSION_CONTAINTER: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".extensionContainer: Parameter extensionContainer is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.extensionContainer = new MAPExtensionContainerImpl(); ((MAPExtensionContainerImpl)this.extensionContainer).decodeAll(ais); break; case _TAG_SPECIFIC_CSI_DELETE_LIST: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".specificCSIDeletedList: Parameter specificCSIDeletedList is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.specificCSIDeletedList = new SpecificCSIWithdrawImpl(); ((SpecificCSIWithdrawImpl)this.specificCSIDeletedList).decodeAll(ais); break; case _TAG_MT_SMS_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".mtSmsCsi: Parameter mtSmsCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.mtSmsCsi = new SMSCSIImpl(); ((SMSCSIImpl)this.mtSmsCsi).decodeAll(ais); break; case _TAG_MT_SMS_CAMEL_TDP_CRITERIA_LIST: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".mtSmsCamelTdpCriteriaList: Parameter mtSmsCamelTdpCriteriaList is primitive", MAPParsingComponentExceptionReason.MistypedParameter); MTsmsCAMELTDPCriteria mTsmsCAMELTDPCriteria; this.mtSmsCamelTdpCriteriaList = new ArrayList<MTsmsCAMELTDPCriteria>(); 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 + ".mTsmsCAMELTDPCriteria: Parameter mTsmsCAMELTDPCriteria is primitive", MAPParsingComponentExceptionReason.MistypedParameter); mTsmsCAMELTDPCriteria = new MTsmsCAMELTDPCriteriaImpl(); ((MTsmsCAMELTDPCriteriaImpl)mTsmsCAMELTDPCriteria).decodeAll(ais2); this.mtSmsCamelTdpCriteriaList.add(mTsmsCAMELTDPCriteria); } if (this.mtSmsCamelTdpCriteriaList.size() < 1 || this.mtSmsCamelTdpCriteriaList.size() > 10) { throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter mtSmsCamelTdpCriteriaList size must be from 1 to 10, found: " + this.mtSmsCamelTdpCriteriaList.size(), MAPParsingComponentExceptionReason.MistypedParameter); } break; case _TAG_MG_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".mgCsi: Parameter mgCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.mgCsi = new MGCSIImpl(); ((MGCSIImpl)this.mgCsi).decodeAll(ais); break; case _TAG_O_IM_SCI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".oImCsi: Parameter oImCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.oImCsi = new OCSIImpl(); ((OCSIImpl)this.oImCsi).decodeAll(ais); break; case _TAG_O_IM_BCSM_CAMEL_TDP_CRITERIA_LIST: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".oImBcsmCamelTdpCriteriaList: Parameter oImBcsmCamelTdpCriteriaList is primitive", MAPParsingComponentExceptionReason.MistypedParameter); OBcsmCamelTdpCriteria oImBcsmCamelTdpCriteria; this.oImBcsmCamelTdpCriteriaList = new ArrayList<OBcsmCamelTdpCriteria>(); 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 + ".oImBcsmCamelTdpCriteria: Parameter oImBcsmCamelTdpCriteria is primitive", MAPParsingComponentExceptionReason.MistypedParameter); oImBcsmCamelTdpCriteria = new OBcsmCamelTdpCriteriaImpl(); ((OBcsmCamelTdpCriteriaImpl)oImBcsmCamelTdpCriteria).decodeAll(ais2); this.oImBcsmCamelTdpCriteriaList.add(oImBcsmCamelTdpCriteria); } if (this.oImBcsmCamelTdpCriteriaList.size() < 1 || this.oImBcsmCamelTdpCriteriaList.size() > 10) { throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter oImBcsmCamelTdpCriteriaList size must be from 1 to 10, found: " + this.oImBcsmCamelTdpCriteriaList.size(), MAPParsingComponentExceptionReason.MistypedParameter); } break; case _TAG_D_IM_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".dImCsi: Parameter dImCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.dImCsi = new DCSIImpl(); ((DCSIImpl)this.dImCsi).decodeAll(ais); break; case _TAG_VT_IM_CSI: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".vtImCsi: Parameter vtImCsi is primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.vtImCsi = new TCSIImpl(); ((TCSIImpl)this.vtImCsi).decodeAll(ais); break; case _TAG_VT_IM_BCSM_CAMEL_TDP_CRITERIA_LIST: if (ais.isTagPrimitive()) throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ".vtImBcsmCamelTdpCriteriaList: Parameter vtImBcsmCamelTdpCriteriaList is primitive", MAPParsingComponentExceptionReason.MistypedParameter); TBcsmCamelTdpCriteria vtImBcsmCamelTdpCriteria; this.vtImBcsmCamelTdpCriteriaList = new ArrayList<TBcsmCamelTdpCriteria>(); 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 + ".vtImBcsmCamelTdpCriteria: Parameter vtImBcsmCamelTdpCriteria is primitive", MAPParsingComponentExceptionReason.MistypedParameter); vtImBcsmCamelTdpCriteria = new TBcsmCamelTdpCriteriaImpl(); ((TBcsmCamelTdpCriteriaImpl)vtImBcsmCamelTdpCriteria).decodeAll(ais2); this.vtImBcsmCamelTdpCriteriaList.add(vtImBcsmCamelTdpCriteria); } if (this.vtImBcsmCamelTdpCriteriaList.size() < 1 || this.vtImBcsmCamelTdpCriteriaList.size() > 10) { throw new MAPParsingComponentException("Error while decoding " + _PrimitiveName + ": Parameter vtBcsmCamelTdpCriteriaList size must be from 1 to 10, found: " + this.vtImBcsmCamelTdpCriteriaList.size(), MAPParsingComponentExceptionReason.MistypedParameter); } break; default: ais.advanceElement(); break; } } else { ais.advanceElement(); } } } public void encodeData(AsnOutputStream asnOs) throws MAPException { if (this.oCsi != null) { ((OCSIImpl)this.oCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_O_CSI); } try { if (this.oBcsmCamelTDPCriteriaList != null) { if (this.oBcsmCamelTDPCriteriaList.size() < 1 || this.oBcsmCamelTDPCriteriaList.size() > 10) { throw new MAPException("Error while encoding " + _PrimitiveName + " size oBcsmCamelTDPCriteriaList is out of range (1..10). Actual size: " + this.oBcsmCamelTDPCriteriaList.size()); } asnOs.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG_O_BSCM_CAMEL_TDP_CRITERIA_LIST); int pos = asnOs.StartContentDefiniteLength(); for (OBcsmCamelTdpCriteria oBcsmCamelTdpCriteria: this.oBcsmCamelTDPCriteriaList) { ((OBcsmCamelTdpCriteriaImpl)oBcsmCamelTdpCriteria).encodeAll(asnOs); } asnOs.FinalizeContent(pos); } } catch (AsnException ae) { throw new MAPException("AsnException when encoding " + _PrimitiveName + ": " + ae.getMessage(), ae); } if (this.dCsi != null) { ((DCSIImpl)this.dCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_D_CSI); } if (this.tCsi != null) { ((TCSIImpl)this.tCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_T_CSI); } try { if (this.tBcsmCamelTdpCriteriaList != null) { if (this.tBcsmCamelTdpCriteriaList.size() < 1 || this.tBcsmCamelTdpCriteriaList.size() > 10) { throw new MAPException("Error while encoding " + _PrimitiveName + " size tBcsmCamelTdpCriteriaList is out of range (1..10). Actual size: " + this.tBcsmCamelTdpCriteriaList.size()); } asnOs.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG_T_BCSM_CAMEL_TDP_CRITERIA_LIST); int pos = asnOs.StartContentDefiniteLength(); for (TBcsmCamelTdpCriteria tBcsmCamelTdpCriteria: this.tBcsmCamelTdpCriteriaList) { ((TBcsmCamelTdpCriteriaImpl)tBcsmCamelTdpCriteria).encodeAll(asnOs); } asnOs.FinalizeContent(pos); } } catch (AsnException ae) { throw new MAPException("AsnException when encoding " + _PrimitiveName + ": " + ae.getMessage(), ae); } if (this.vtCsi != null) { ((TCSIImpl)this.vtCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_VT_CSI); } try { if (this.vtBcsmCamelTdpCriteriaList != null) { if (this.vtBcsmCamelTdpCriteriaList.size() < 1 || this.vtBcsmCamelTdpCriteriaList.size() > 10) { throw new MAPException("Error while encoding " + _PrimitiveName + " size vtBcsmCamelTdpCriteriaList is out of range (1..10). Actual size: " + this.vtBcsmCamelTdpCriteriaList.size()); } asnOs.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG_VT_BCSM_CAMEL_TDP_CRITERIA_LIST); int pos = asnOs.StartContentDefiniteLength(); for (TBcsmCamelTdpCriteria vtBcsmCamelTdpCriteria: this.vtBcsmCamelTdpCriteriaList) { ((TBcsmCamelTdpCriteriaImpl)vtBcsmCamelTdpCriteria).encodeAll(asnOs); } asnOs.FinalizeContent(pos); } } catch (AsnException ae) { throw new MAPException("AsnException when encoding " + _PrimitiveName + ": " + ae.getMessage(), ae); } if (this.tifCsi) { try { asnOs.writeNull(Tag.CLASS_CONTEXT_SPECIFIC, _TAG_TIF_CSI); } catch (IOException e) { throw new MAPException("IOException when encoding parameter tifCsi: ", e); } catch (AsnException e) { throw new MAPException("AsnException when encoding parameter tifCsi: ", e); } } if (this.tifCsiNotificationToCSE) { try { asnOs.writeNull(Tag.CLASS_CONTEXT_SPECIFIC, _TAG_TIF_CSI_NOTIFICATION_TO_CSE); } catch (IOException e) { throw new MAPException("IOException when encoding parameter tifCsiNotificationToCSE: ", e); } catch (AsnException e) { throw new MAPException("AsnException when encoding parameter tifCsiNotificationToCSE: ", e); } } if (this.gprsCsi != null) { ((GPRSCSIImpl)this.gprsCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_GPRS_CSI); } if (this.moSmsCsi != null) { ((SMSCSIImpl)this.moSmsCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_MO_SMS_CSI); } if (this.ssCsi != null) { ((SSCSIImpl)this.ssCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_SS_CSI); } if (this.mCsi != null) { ((MCSIImpl)this.mCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_M_CSI); } if (this.extensionContainer != null) { ((MAPExtensionContainerImpl) this.extensionContainer).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_EXTENSION_CONTAINTER); } if (this.specificCSIDeletedList != null) { ((SpecificCSIWithdrawImpl)this.specificCSIDeletedList).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_SPECIFIC_CSI_DELETE_LIST); } if (this.mtSmsCsi != null) { ((SMSCSIImpl)this.mtSmsCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_MT_SMS_CSI); } try { if (this.mtSmsCamelTdpCriteriaList != null) { if (this.mtSmsCamelTdpCriteriaList.size() < 1 || this.mtSmsCamelTdpCriteriaList.size() > 10) { throw new MAPException("Error while encoding " + _PrimitiveName + " size mtSmsCamelTdpCriteriaList is out of range (1..10). Actual size: " + this.mtSmsCamelTdpCriteriaList.size()); } asnOs.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG_MT_SMS_CAMEL_TDP_CRITERIA_LIST); int pos = asnOs.StartContentDefiniteLength(); for (MTsmsCAMELTDPCriteria mTsmsCAMELTDPCriteria: this.mtSmsCamelTdpCriteriaList) { ((MTsmsCAMELTDPCriteriaImpl)mTsmsCAMELTDPCriteria).encodeAll(asnOs); } asnOs.FinalizeContent(pos); } } catch (AsnException ae) { throw new MAPException("AsnException when encoding " + _PrimitiveName + ": " + ae.getMessage(), ae); } if (this.mgCsi != null) { ((MGCSIImpl)this.mgCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_MG_CSI); } if (this.oImCsi != null) { ((OCSIImpl)this.oImCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_O_IM_SCI); } try { if (this.oImBcsmCamelTdpCriteriaList != null) { if (this.oImBcsmCamelTdpCriteriaList.size() < 1 || this.oImBcsmCamelTdpCriteriaList.size() > 10) { throw new MAPException("Error while encoding " + _PrimitiveName + " size oImBcsmCamelTdpCriteriaList is out of range (1..10). Actual size: " + this.oImBcsmCamelTdpCriteriaList.size()); } asnOs.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG_O_IM_BCSM_CAMEL_TDP_CRITERIA_LIST); int pos = asnOs.StartContentDefiniteLength(); for (OBcsmCamelTdpCriteria oImBcsmCamelTdpCriteria: this.oImBcsmCamelTdpCriteriaList) { ((OBcsmCamelTdpCriteriaImpl)oImBcsmCamelTdpCriteria).encodeAll(asnOs); } asnOs.FinalizeContent(pos); } } catch (AsnException ae) { throw new MAPException("AsnException when encoding " + _PrimitiveName + ": " + ae.getMessage(), ae); } if (this.dImCsi != null) { ((DCSIImpl)this.dImCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_D_IM_CSI); } if (this.vtImCsi != null) { ((TCSIImpl)this.vtImCsi).encodeAll(asnOs, Tag.CLASS_CONTEXT_SPECIFIC, _TAG_VT_IM_CSI); } try { if (this.vtImBcsmCamelTdpCriteriaList != null) { if (this.vtImBcsmCamelTdpCriteriaList.size() < 1 || this.vtImBcsmCamelTdpCriteriaList.size() > 10) { throw new MAPException("Error while encoding " + _PrimitiveName + " size vtImBcsmCamelTdpCriteriaList is out of range (1..10). Actual size: " + this.vtImBcsmCamelTdpCriteriaList.size()); } asnOs.writeTag(Tag.CLASS_CONTEXT_SPECIFIC, false, _TAG_VT_IM_BCSM_CAMEL_TDP_CRITERIA_LIST); int pos = asnOs.StartContentDefiniteLength(); for (TBcsmCamelTdpCriteria vtImBcsmCamelTdpCriteria: this.vtImBcsmCamelTdpCriteriaList) { ((TBcsmCamelTdpCriteriaImpl)vtImBcsmCamelTdpCriteria).encodeAll(asnOs); } asnOs.FinalizeContent(pos); } } catch (AsnException ae) { throw new MAPException("AsnException when encoding " + _PrimitiveName + ": " + ae.getMessage(), ae); } } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(_PrimitiveName); sb.append(" ["); if (this.oCsi != null) { sb.append("ssForBSCode="); sb.append(this.oCsi); } if (this.oBcsmCamelTDPCriteriaList != null) { sb.append(", oBcsmCamelTDPCriteriaList=["); boolean firstItem = true; for (OBcsmCamelTdpCriteria oBcsmCamelTdpCriteria: oBcsmCamelTDPCriteriaList) { if (firstItem) { firstItem = false; } else { sb.append(", "); } sb.append(oBcsmCamelTdpCriteria); } sb.append("], "); } if (this.dCsi != null) { sb.append(", dCsi="); sb.append(this.dCsi); } if (this.tCsi != null) { sb.append(", tCsi="); sb.append(this.tCsi); } if (this.tBcsmCamelTdpCriteriaList != null) { sb.append(", tBcsmCamelTdpCriteriaList=["); boolean firstItem = true; for (TBcsmCamelTdpCriteria tBcsmCamelTdpCriteria: tBcsmCamelTdpCriteriaList) { if (firstItem) { firstItem = false; } else { sb.append(", "); } sb.append(tBcsmCamelTdpCriteria); } sb.append("], "); } if (this.vtCsi != null) { sb.append(", vtCsi="); sb.append(this.vtCsi); } if (this.vtBcsmCamelTdpCriteriaList != null) { sb.append(", vtBcsmCamelTdpCriteriaList=["); boolean firstItem = true; for (TBcsmCamelTdpCriteria vtBcsmCamelTdpCriteria: vtBcsmCamelTdpCriteriaList) { if (firstItem) { firstItem = false; } else { sb.append(", "); } sb.append(vtBcsmCamelTdpCriteria); } sb.append("], "); } if (this.tifCsi) sb.append(", tifCsi"); if (this.tifCsiNotificationToCSE) sb.append(", tifCsiNotificationToCSE"); if (this.gprsCsi != null) { sb.append(", gprsCsi="); sb.append(this.gprsCsi); } if (this.moSmsCsi != null) { sb.append(", moSmsCsi="); sb.append(this.moSmsCsi); } if (this.ssCsi != null) { sb.append(", ssCsi="); sb.append(this.ssCsi); } if (this.mCsi != null) { sb.append(", mCsi="); sb.append(this.mCsi); } if (this.extensionContainer != null) { sb.append(", extensionContainer="); sb.append(this.extensionContainer); } if (this.specificCSIDeletedList != null) { sb.append(", specificCSIDeletedList="); sb.append(this.specificCSIDeletedList); } if (this.mtSmsCsi != null) { sb.append(", mtSmsCsi="); sb.append(this.mtSmsCsi); } if (this.mtSmsCamelTdpCriteriaList != null) { sb.append(", mtSmsCamelTdpCriteriaList=["); boolean firstItem = true; for (MTsmsCAMELTDPCriteria mTsmsCAMELTDPCriteria: mtSmsCamelTdpCriteriaList) { if (firstItem) { firstItem = false; } else { sb.append(", "); } sb.append(mTsmsCAMELTDPCriteria); } sb.append("], "); } if (this.mgCsi != null) { sb.append(", mgCsi="); sb.append(this.mgCsi); } if (this.oImCsi != null) { sb.append(", oImCsi="); sb.append(this.oImCsi); } if (this.oImBcsmCamelTdpCriteriaList != null) { sb.append(", oImBcsmCamelTdpCriteriaList=["); boolean firstItem = true; for (OBcsmCamelTdpCriteria oImBcsmCamelTdpCriteria: oImBcsmCamelTdpCriteriaList) { if (firstItem) { firstItem = false; } else { sb.append(", "); } sb.append(oImBcsmCamelTdpCriteria); } sb.append("], "); } if (this.dImCsi != null) { sb.append(", dImCsi="); sb.append(this.dImCsi); } if (this.vtImCsi != null) { sb.append(", vtImCsi="); sb.append(this.vtImCsi); } if (this.vtImBcsmCamelTdpCriteriaList != null) { sb.append(", vtImBcsmCamelTdpCriteriaList=["); boolean firstItem = true; for (TBcsmCamelTdpCriteria tBcsmCamelTdpCriteria: vtImBcsmCamelTdpCriteriaList) { if (firstItem) { firstItem = false; } else { sb.append(", "); } sb.append(tBcsmCamelTdpCriteria); } sb.append("], "); } sb.append("]"); return sb.toString(); } }