/*
* TeleStax, Open Source Cloud Communications
* Copyright 2012, Telestax Inc and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.mobicents.protocols.ss7.cap.service.circuitSwitchedCall.primitive;
import java.io.IOException;
import javolution.xml.XMLFormat;
import javolution.xml.stream.XMLStreamException;
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.cap.EsiBcsm.CallAcceptedSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.DpSpecificInfoAltImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.OAbandonSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.OAnswerSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.OCalledPartyBusySpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.OChangeOfPositionSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.ODisconnectSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.OMidCallSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.ONoAnswerSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.OTermSeizedSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.RouteSelectFailureSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.TAnswerSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.TBusySpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.TChangeOfPositionSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.TDisconnectSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.TMidCallSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.EsiBcsm.TNoAnswerSpecificInfoImpl;
import org.mobicents.protocols.ss7.cap.api.CAPException;
import org.mobicents.protocols.ss7.cap.api.CAPParsingComponentException;
import org.mobicents.protocols.ss7.cap.api.CAPParsingComponentExceptionReason;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.CallAcceptedSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.DpSpecificInfoAlt;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.OAbandonSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.OAnswerSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.OCalledPartyBusySpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.OChangeOfPositionSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.ODisconnectSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.OMidCallSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.ONoAnswerSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.OTermSeizedSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.RouteSelectFailureSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.TAnswerSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.TBusySpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.TChangeOfPositionSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.TDisconnectSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.TMidCallSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.EsiBcsm.TNoAnswerSpecificInfo;
import org.mobicents.protocols.ss7.cap.api.service.circuitSwitchedCall.primitive.EventSpecificInformationBCSM;
import org.mobicents.protocols.ss7.cap.primitives.CAPAsnPrimitive;
import org.mobicents.protocols.ss7.map.api.MAPParsingComponentException;
/**
*
* @author sergey vetyutnev
*
*/
public class EventSpecificInformationBCSMImpl implements EventSpecificInformationBCSM, CAPAsnPrimitive {
private static final String ROUTE_SELECT_FAILURE_SPECIFIC_INFO = "routeSelectFailureSpecificInfo";
private static final String O_CALLED_PARTY_BUSY_SPECIFIC_INFO = "oCalledPartyBusySpecificInfo";
private static final String O_NO_ANSWER_SPECIFIC_INFO = "oNoAnswerSpecificInfo";
private static final String O_ANSWER_SPECIFIC_INFO = "oAnswerSpecificInfo";
private static final String O_MID_CALL_SPECIFIC_INFO = "oMidCallSpecificInfo";
private static final String O_DISCONNECT_SPECIFIC_INFO = "oDisconnectSpecificInfo";
private static final String T_BUSY_SPECIFIC_INFO = "tBusySpecificInfo";
private static final String T_NO_ANSWER_SPECIFIC_INFO = "tNoAnswerSpecificInfo";
private static final String T_ANSWER_SPECIFIC_INFO = "tAnswerSpecificInfo";
private static final String T_MID_CALL_SPECIFIC_INFO = "tMidCallSpecificInfo";
private static final String T_DISCONNECT_SPECIFIC_INFO = "tDisconnectSpecificInfo";
private static final String O_TERM_SPECIFIC_INFO = "oTermSeizedSpecificInfo";
private static final String CALL_ACCEPTED_SPECIFIC_INFO = "callAcceptedSpecificInfo";
private static final String O_ABONDON_SPECIFIC_INFO = "oAbandonSpecificInfo";
private static final String O_CHANGE_OF_POSITION_SPECIFIC_INFO = "oChangeOfPositionSpecificInfo";
private static final String T_CHANGE_OF_POSITION_SPECIFIC_INFO = "tChangeOfPositionSpecificInfo";
private static final String DP_SPECIFIC_INFO_ALT = "dpSpecificInfoAlt";
public static final int _ID_routeSelectFailureSpecificInfo = 2;
public static final int _ID_oCalledPartyBusySpecificInfo = 3;
public static final int _ID_oNoAnswerSpecificInfo = 4;
public static final int _ID_oAnswerSpecificInfo = 5;
public static final int _ID_oMidCallSpecificInfo = 6;
public static final int _ID_oDisconnectSpecificInfo = 7;
public static final int _ID_tBusySpecificInfo = 8;
public static final int _ID_tNoAnswerSpecificInfo = 9;
public static final int _ID_tAnswerSpecificInfo = 10;
public static final int _ID_tMidCallSpecificInfo = 11;
public static final int _ID_tDisconnectSpecificInfo = 12;
public static final int _ID_oTermSeizedSpecificInfo = 13;
public static final int _ID_callAcceptedSpecificInfo = 20;
public static final int _ID_oAbandonSpecificInfo = 21;
public static final int _ID_oChangeOfPositionSpecificInfo = 50;
public static final int _ID_tChangeOfPositionSpecificInfo = 51;
public static final int _ID_dpSpecificInfoAlt = 52;
public static final String _PrimitiveName = "EventSpecificInformationBCSM";
private RouteSelectFailureSpecificInfo routeSelectFailureSpecificInfo;
private OCalledPartyBusySpecificInfo oCalledPartyBusySpecificInfo;
private ONoAnswerSpecificInfo oNoAnswerSpecificInfo;
private OAnswerSpecificInfo oAnswerSpecificInfo;
private OMidCallSpecificInfo oMidCallSpecificInfo;
private ODisconnectSpecificInfo oDisconnectSpecificInfo;
private TBusySpecificInfo tBusySpecificInfo;
private TNoAnswerSpecificInfo tNoAnswerSpecificInfo;
private TAnswerSpecificInfo tAnswerSpecificInfo;
private TMidCallSpecificInfo tMidCallSpecificInfo;
private TDisconnectSpecificInfo tDisconnectSpecificInfo;
private OTermSeizedSpecificInfo oTermSeizedSpecificInfo;
private CallAcceptedSpecificInfo callAcceptedSpecificInfo;
private OAbandonSpecificInfo oAbandonSpecificInfo;
private OChangeOfPositionSpecificInfo oChangeOfPositionSpecificInfo;
private TChangeOfPositionSpecificInfo tChangeOfPositionSpecificInfo;
private DpSpecificInfoAlt dpSpecificInfoAlt;
public EventSpecificInformationBCSMImpl() {
}
public EventSpecificInformationBCSMImpl(RouteSelectFailureSpecificInfo routeSelectFailureSpecificInfo) {
this.routeSelectFailureSpecificInfo = routeSelectFailureSpecificInfo;
}
public EventSpecificInformationBCSMImpl(OCalledPartyBusySpecificInfo oCalledPartyBusySpecificInfo) {
this.oCalledPartyBusySpecificInfo = oCalledPartyBusySpecificInfo;
}
public EventSpecificInformationBCSMImpl(ONoAnswerSpecificInfo oNoAnswerSpecificInfo) {
this.oNoAnswerSpecificInfo = oNoAnswerSpecificInfo;
}
public EventSpecificInformationBCSMImpl(OAnswerSpecificInfo oAnswerSpecificInfo) {
this.oAnswerSpecificInfo = oAnswerSpecificInfo;
}
public EventSpecificInformationBCSMImpl(OMidCallSpecificInfo oMidCallSpecificInfo) {
this.oMidCallSpecificInfo = oMidCallSpecificInfo;
}
public EventSpecificInformationBCSMImpl(ODisconnectSpecificInfo oDisconnectSpecificInfo) {
this.oDisconnectSpecificInfo = oDisconnectSpecificInfo;
}
public EventSpecificInformationBCSMImpl(TBusySpecificInfo tBusySpecificInfo) {
this.tBusySpecificInfo = tBusySpecificInfo;
}
public EventSpecificInformationBCSMImpl(TNoAnswerSpecificInfo tNoAnswerSpecificInfo) {
this.tNoAnswerSpecificInfo = tNoAnswerSpecificInfo;
}
public EventSpecificInformationBCSMImpl(TAnswerSpecificInfo tAnswerSpecificInfo) {
this.tAnswerSpecificInfo = tAnswerSpecificInfo;
}
public EventSpecificInformationBCSMImpl(TMidCallSpecificInfo tMidCallSpecificInfo) {
this.tMidCallSpecificInfo = tMidCallSpecificInfo;
}
public EventSpecificInformationBCSMImpl(TDisconnectSpecificInfo tDisconnectSpecificInfo) {
this.tDisconnectSpecificInfo = tDisconnectSpecificInfo;
}
public EventSpecificInformationBCSMImpl(OTermSeizedSpecificInfo oTermSeizedSpecificInfo) {
this.oTermSeizedSpecificInfo = oTermSeizedSpecificInfo;
}
public EventSpecificInformationBCSMImpl(CallAcceptedSpecificInfo callAcceptedSpecificInfo) {
this.callAcceptedSpecificInfo = callAcceptedSpecificInfo;
}
public EventSpecificInformationBCSMImpl(OAbandonSpecificInfo oAbandonSpecificInfo) {
this.oAbandonSpecificInfo = oAbandonSpecificInfo;
}
public EventSpecificInformationBCSMImpl(OChangeOfPositionSpecificInfo oChangeOfPositionSpecificInfo) {
this.oChangeOfPositionSpecificInfo = oChangeOfPositionSpecificInfo;
}
public EventSpecificInformationBCSMImpl(TChangeOfPositionSpecificInfo tChangeOfPositionSpecificInfo) {
this.tChangeOfPositionSpecificInfo = tChangeOfPositionSpecificInfo;
}
public EventSpecificInformationBCSMImpl(DpSpecificInfoAlt dpSpecificInfoAlt) {
this.dpSpecificInfoAlt = dpSpecificInfoAlt;
}
@Override
public RouteSelectFailureSpecificInfo getRouteSelectFailureSpecificInfo() {
return routeSelectFailureSpecificInfo;
}
@Override
public OCalledPartyBusySpecificInfo getOCalledPartyBusySpecificInfo() {
return oCalledPartyBusySpecificInfo;
}
@Override
public ONoAnswerSpecificInfo getONoAnswerSpecificInfo() {
return oNoAnswerSpecificInfo;
}
@Override
public OAnswerSpecificInfo getOAnswerSpecificInfo() {
return oAnswerSpecificInfo;
}
@Override
public OMidCallSpecificInfo getOMidCallSpecificInfo() {
return oMidCallSpecificInfo;
}
@Override
public ODisconnectSpecificInfo getODisconnectSpecificInfo() {
return oDisconnectSpecificInfo;
}
@Override
public TBusySpecificInfo getTBusySpecificInfo() {
return tBusySpecificInfo;
}
@Override
public TNoAnswerSpecificInfo getTNoAnswerSpecificInfo() {
return tNoAnswerSpecificInfo;
}
@Override
public TAnswerSpecificInfo getTAnswerSpecificInfo() {
return tAnswerSpecificInfo;
}
@Override
public TMidCallSpecificInfo getTMidCallSpecificInfo() {
return tMidCallSpecificInfo;
}
@Override
public TDisconnectSpecificInfo getTDisconnectSpecificInfo() {
return tDisconnectSpecificInfo;
}
@Override
public OTermSeizedSpecificInfo getOTermSeizedSpecificInfo() {
return oTermSeizedSpecificInfo;
}
@Override
public CallAcceptedSpecificInfo getCallAcceptedSpecificInfo() {
return callAcceptedSpecificInfo;
}
@Override
public OAbandonSpecificInfo getOAbandonSpecificInfo() {
return oAbandonSpecificInfo;
}
@Override
public OChangeOfPositionSpecificInfo getOChangeOfPositionSpecificInfo() {
return oChangeOfPositionSpecificInfo;
}
@Override
public TChangeOfPositionSpecificInfo getTChangeOfPositionSpecificInfo() {
return tChangeOfPositionSpecificInfo;
}
@Override
public DpSpecificInfoAlt getDpSpecificInfoAlt() {
return dpSpecificInfoAlt;
}
@Override
public int getTag() throws CAPException {
if (routeSelectFailureSpecificInfo != null) {
return _ID_routeSelectFailureSpecificInfo;
} else if (oCalledPartyBusySpecificInfo != null) {
return _ID_oCalledPartyBusySpecificInfo;
} else if (oNoAnswerSpecificInfo != null) {
return _ID_oNoAnswerSpecificInfo;
} else if (oAnswerSpecificInfo != null) {
return _ID_oAnswerSpecificInfo;
} else if (oMidCallSpecificInfo != null) {
return _ID_oMidCallSpecificInfo;
} else if (oDisconnectSpecificInfo != null) {
return _ID_oDisconnectSpecificInfo;
} else if (tBusySpecificInfo != null) {
return _ID_tBusySpecificInfo;
} else if (tNoAnswerSpecificInfo != null) {
return _ID_tNoAnswerSpecificInfo;
} else if (tAnswerSpecificInfo != null) {
return _ID_tAnswerSpecificInfo;
} else if (tMidCallSpecificInfo != null) {
return _ID_tMidCallSpecificInfo;
} else if (tDisconnectSpecificInfo != null) {
return _ID_tDisconnectSpecificInfo;
} else if (oTermSeizedSpecificInfo != null) {
return _ID_oTermSeizedSpecificInfo;
} else if (callAcceptedSpecificInfo != null) {
return _ID_callAcceptedSpecificInfo;
} else if (oAbandonSpecificInfo != null) {
return _ID_oAbandonSpecificInfo;
} else if (oChangeOfPositionSpecificInfo != null) {
return _ID_oChangeOfPositionSpecificInfo;
} else if (tChangeOfPositionSpecificInfo != null) {
return _ID_tChangeOfPositionSpecificInfo;
} else if (dpSpecificInfoAlt != null) {
return _ID_dpSpecificInfoAlt;
}
throw new CAPException("Error while encoding " + _PrimitiveName + ": no choice is specified");
}
@Override
public int getTagClass() {
return Tag.CLASS_CONTEXT_SPECIFIC;
}
@Override
public boolean getIsPrimitive() {
return false;
}
@Override
public void decodeAll(AsnInputStream ansIS) throws CAPParsingComponentException {
try {
int length = ansIS.readLength();
this._decode(ansIS, length);
} catch (IOException e) {
throw new CAPParsingComponentException("IOException when decoding " + _PrimitiveName + ": " + e.getMessage(), e,
CAPParsingComponentExceptionReason.MistypedParameter);
} catch (AsnException e) {
throw new CAPParsingComponentException("AsnException when decoding " + _PrimitiveName + ": " + e.getMessage(), e,
CAPParsingComponentExceptionReason.MistypedParameter);
} catch (MAPParsingComponentException e) {
throw new CAPParsingComponentException("MAPParsingComponentException when decoding " + _PrimitiveName + ": "
+ e.getMessage(), e, CAPParsingComponentExceptionReason.MistypedParameter);
}
}
@Override
public void decodeData(AsnInputStream ansIS, int length) throws CAPParsingComponentException {
try {
this._decode(ansIS, length);
} catch (IOException e) {
throw new CAPParsingComponentException("IOException when decoding " + _PrimitiveName + ": " + e.getMessage(), e,
CAPParsingComponentExceptionReason.MistypedParameter);
} catch (AsnException e) {
throw new CAPParsingComponentException("AsnException when decoding " + _PrimitiveName + ": " + e.getMessage(), e,
CAPParsingComponentExceptionReason.MistypedParameter);
} catch (MAPParsingComponentException e) {
throw new CAPParsingComponentException("MAPParsingComponentException when decoding " + _PrimitiveName + ": "
+ e.getMessage(), e, CAPParsingComponentExceptionReason.MistypedParameter);
}
}
private void _decode(AsnInputStream ais, int length) throws CAPParsingComponentException, MAPParsingComponentException,
IOException, AsnException {
this.routeSelectFailureSpecificInfo = null;
this.oCalledPartyBusySpecificInfo = null;
this.oNoAnswerSpecificInfo = null;
this.oAnswerSpecificInfo = null;
this.oMidCallSpecificInfo = null;
this.oDisconnectSpecificInfo = null;
this.tBusySpecificInfo = null;
this.tNoAnswerSpecificInfo = null;
this.tAnswerSpecificInfo = null;
this.tMidCallSpecificInfo = null;
this.tDisconnectSpecificInfo = null;
this.oTermSeizedSpecificInfo = null;
this.callAcceptedSpecificInfo = null;
this.oAbandonSpecificInfo = null;
this.oChangeOfPositionSpecificInfo = null;
this.tChangeOfPositionSpecificInfo = null;
this.dpSpecificInfoAlt = null;
int tag = ais.getTag();
if (ais.getTagClass() == Tag.CLASS_CONTEXT_SPECIFIC) {
switch (tag) {
case _ID_routeSelectFailureSpecificInfo:
this.routeSelectFailureSpecificInfo = new RouteSelectFailureSpecificInfoImpl();
((RouteSelectFailureSpecificInfoImpl) this.routeSelectFailureSpecificInfo).decodeData(ais, length);
break;
case _ID_oCalledPartyBusySpecificInfo:
this.oCalledPartyBusySpecificInfo = new OCalledPartyBusySpecificInfoImpl();
((OCalledPartyBusySpecificInfoImpl) this.oCalledPartyBusySpecificInfo).decodeData(ais, length);
break;
case _ID_oNoAnswerSpecificInfo:
this.oNoAnswerSpecificInfo = new ONoAnswerSpecificInfoImpl();
((ONoAnswerSpecificInfoImpl) this.oNoAnswerSpecificInfo).decodeData(ais, length);
break;
case _ID_oAnswerSpecificInfo:
this.oAnswerSpecificInfo = new OAnswerSpecificInfoImpl();
((OAnswerSpecificInfoImpl) this.oAnswerSpecificInfo).decodeData(ais, length);
break;
case _ID_oMidCallSpecificInfo:
this.oMidCallSpecificInfo = new OMidCallSpecificInfoImpl();
((OMidCallSpecificInfoImpl) this.oMidCallSpecificInfo).decodeData(ais, length);
break;
case _ID_oDisconnectSpecificInfo:
this.oDisconnectSpecificInfo = new ODisconnectSpecificInfoImpl();
((ODisconnectSpecificInfoImpl) this.oDisconnectSpecificInfo).decodeData(ais, length);
break;
case _ID_tBusySpecificInfo:
this.tBusySpecificInfo = new TBusySpecificInfoImpl();
((TBusySpecificInfoImpl) this.tBusySpecificInfo).decodeData(ais, length);
break;
case _ID_tNoAnswerSpecificInfo:
this.tNoAnswerSpecificInfo = new TNoAnswerSpecificInfoImpl();
((TNoAnswerSpecificInfoImpl) this.tNoAnswerSpecificInfo).decodeData(ais, length);
break;
case _ID_tAnswerSpecificInfo:
this.tAnswerSpecificInfo = new TAnswerSpecificInfoImpl();
((TAnswerSpecificInfoImpl) this.tAnswerSpecificInfo).decodeData(ais, length);
break;
case _ID_tMidCallSpecificInfo:
this.tMidCallSpecificInfo = new TMidCallSpecificInfoImpl();
((TMidCallSpecificInfoImpl) this.tMidCallSpecificInfo).decodeData(ais, length);
break;
case _ID_tDisconnectSpecificInfo:
this.tDisconnectSpecificInfo = new TDisconnectSpecificInfoImpl();
((TDisconnectSpecificInfoImpl) this.tDisconnectSpecificInfo).decodeData(ais, length);
break;
case _ID_oTermSeizedSpecificInfo:
this.oTermSeizedSpecificInfo = new OTermSeizedSpecificInfoImpl();
((OTermSeizedSpecificInfoImpl) this.oTermSeizedSpecificInfo).decodeData(ais, length);
break;
case _ID_callAcceptedSpecificInfo:
this.callAcceptedSpecificInfo = new CallAcceptedSpecificInfoImpl();
((CallAcceptedSpecificInfoImpl) this.callAcceptedSpecificInfo).decodeData(ais, length);
break;
case _ID_oAbandonSpecificInfo:
this.oAbandonSpecificInfo = new OAbandonSpecificInfoImpl();
((OAbandonSpecificInfoImpl) this.oAbandonSpecificInfo).decodeData(ais, length);
break;
case _ID_oChangeOfPositionSpecificInfo:
this.oChangeOfPositionSpecificInfo = new OChangeOfPositionSpecificInfoImpl();
((OChangeOfPositionSpecificInfoImpl) this.oChangeOfPositionSpecificInfo).decodeData(ais, length);
break;
case _ID_tChangeOfPositionSpecificInfo:
this.tChangeOfPositionSpecificInfo = new TChangeOfPositionSpecificInfoImpl();
((TChangeOfPositionSpecificInfoImpl) this.tChangeOfPositionSpecificInfo).decodeData(ais, length);
break;
case _ID_dpSpecificInfoAlt:
this.dpSpecificInfoAlt = new DpSpecificInfoAltImpl();
((DpSpecificInfoAltImpl) this.dpSpecificInfoAlt).decodeData(ais, length);
break;
default:
throw new CAPParsingComponentException("Error while decoding " + _PrimitiveName + ": bad choice tag",
CAPParsingComponentExceptionReason.MistypedParameter);
}
} else {
throw new CAPParsingComponentException("Error while decoding " + _PrimitiveName + ": bad choice tagClass",
CAPParsingComponentExceptionReason.MistypedParameter);
}
}
@Override
public void encodeAll(AsnOutputStream asnOs) throws CAPException {
this.encodeAll(asnOs, this.getTagClass(), this.getTag());
}
@Override
public void encodeAll(AsnOutputStream asnOs, int tagClass, int tag) throws CAPException {
try {
asnOs.writeTag(tagClass, this.getIsPrimitive(), tag);
int pos = asnOs.StartContentDefiniteLength();
this.encodeData(asnOs);
asnOs.FinalizeContent(pos);
} catch (AsnException e) {
throw new CAPException("AsnException when encoding " + _PrimitiveName + ": " + e.getMessage(), e);
}
}
@Override
public void encodeData(AsnOutputStream asnOs) throws CAPException {
if (routeSelectFailureSpecificInfo != null) {
((RouteSelectFailureSpecificInfoImpl) routeSelectFailureSpecificInfo).encodeData(asnOs);
return;
} else if (oCalledPartyBusySpecificInfo != null) {
((OCalledPartyBusySpecificInfoImpl) oCalledPartyBusySpecificInfo).encodeData(asnOs);
return;
} else if (oNoAnswerSpecificInfo != null) {
((ONoAnswerSpecificInfoImpl) oNoAnswerSpecificInfo).encodeData(asnOs);
return;
} else if (oAnswerSpecificInfo != null) {
((OAnswerSpecificInfoImpl) oAnswerSpecificInfo).encodeData(asnOs);
return;
} else if (oMidCallSpecificInfo != null) {
((OMidCallSpecificInfoImpl) oMidCallSpecificInfo).encodeData(asnOs);
return;
} else if (oDisconnectSpecificInfo != null) {
((ODisconnectSpecificInfoImpl) oDisconnectSpecificInfo).encodeData(asnOs);
return;
} else if (tBusySpecificInfo != null) {
((TBusySpecificInfoImpl) tBusySpecificInfo).encodeData(asnOs);
return;
} else if (tNoAnswerSpecificInfo != null) {
((TNoAnswerSpecificInfoImpl) tNoAnswerSpecificInfo).encodeData(asnOs);
return;
} else if (tAnswerSpecificInfo != null) {
((TAnswerSpecificInfoImpl) tAnswerSpecificInfo).encodeData(asnOs);
return;
} else if (tMidCallSpecificInfo != null) {
((TMidCallSpecificInfoImpl) tMidCallSpecificInfo).encodeData(asnOs);
return;
} else if (tDisconnectSpecificInfo != null) {
((TDisconnectSpecificInfoImpl) tDisconnectSpecificInfo).encodeData(asnOs);
return;
} else if (oTermSeizedSpecificInfo != null) {
((OTermSeizedSpecificInfoImpl) oTermSeizedSpecificInfo).encodeData(asnOs);
return;
} else if (callAcceptedSpecificInfo != null) {
((CallAcceptedSpecificInfoImpl) callAcceptedSpecificInfo).encodeData(asnOs);
return;
} else if (oAbandonSpecificInfo != null) {
((OAbandonSpecificInfoImpl) oAbandonSpecificInfo).encodeData(asnOs);
return;
} else if (oChangeOfPositionSpecificInfo != null) {
((OChangeOfPositionSpecificInfoImpl) oChangeOfPositionSpecificInfo).encodeData(asnOs);
return;
} else if (tChangeOfPositionSpecificInfo != null) {
((TChangeOfPositionSpecificInfoImpl) tChangeOfPositionSpecificInfo).encodeData(asnOs);
return;
} else if (dpSpecificInfoAlt != null) {
((DpSpecificInfoAltImpl) dpSpecificInfoAlt).encodeData(asnOs);
return;
}
throw new CAPException("Error while encoding " + _PrimitiveName + ": no choice is specified");
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(_PrimitiveName);
sb.append(" [");
if (routeSelectFailureSpecificInfo != null) {
sb.append("routeSelectFailureSpecificInfo=[");
sb.append(routeSelectFailureSpecificInfo.toString());
sb.append("]");
} else if (oCalledPartyBusySpecificInfo != null) {
sb.append("oCalledPartyBusySpecificInfo=[");
sb.append(oCalledPartyBusySpecificInfo.toString());
sb.append("]");
} else if (oNoAnswerSpecificInfo != null) {
sb.append("oNoAnswerSpecificInfo=[");
sb.append(oNoAnswerSpecificInfo.toString());
sb.append("]");
} else if (oAnswerSpecificInfo != null) {
sb.append("oAnswerSpecificInfo=[");
sb.append(oAnswerSpecificInfo.toString());
sb.append("]");
} else if (oMidCallSpecificInfo != null) {
sb.append("oMidCallSpecificInfo=[");
sb.append(oMidCallSpecificInfo.toString());
sb.append("]");
} else if (oDisconnectSpecificInfo != null) {
sb.append("oDisconnectSpecificInfo=[");
sb.append(oDisconnectSpecificInfo.toString());
sb.append("]");
} else if (tBusySpecificInfo != null) {
sb.append("tBusySpecificInfo=[");
sb.append(tBusySpecificInfo.toString());
sb.append("]");
} else if (tNoAnswerSpecificInfo != null) {
sb.append("tNoAnswerSpecificInfo=[");
sb.append(tNoAnswerSpecificInfo.toString());
sb.append("]");
} else if (tAnswerSpecificInfo != null) {
sb.append("tAnswerSpecificInfo=[");
sb.append(tAnswerSpecificInfo.toString());
sb.append("]");
} else if (tMidCallSpecificInfo != null) {
sb.append("tMidCallSpecificInfo=[");
sb.append(tMidCallSpecificInfo.toString());
sb.append("]");
} else if (tDisconnectSpecificInfo != null) {
sb.append("tDisconnectSpecificInfo=[");
sb.append(tDisconnectSpecificInfo.toString());
sb.append("]");
} else if (oTermSeizedSpecificInfo != null) {
sb.append("oTermSeizedSpecificInfo=[");
sb.append(oTermSeizedSpecificInfo.toString());
sb.append("]");
} else if (callAcceptedSpecificInfo != null) {
sb.append("callAcceptedSpecificInfo=[");
sb.append(callAcceptedSpecificInfo.toString());
sb.append("]");
} else if (oAbandonSpecificInfo != null) {
sb.append("oAbandonSpecificInfo=[");
sb.append(oAbandonSpecificInfo.toString());
sb.append("]");
} else if (oChangeOfPositionSpecificInfo != null) {
sb.append("oChangeOfPositionSpecificInfo=[");
sb.append(oChangeOfPositionSpecificInfo.toString());
sb.append("]");
} else if (tChangeOfPositionSpecificInfo != null) {
sb.append("tChangeOfPositionSpecificInfo=[");
sb.append(tChangeOfPositionSpecificInfo.toString());
sb.append("]");
} else if (dpSpecificInfoAlt != null) {
sb.append("dpSpecificInfoAlt=[");
sb.append(dpSpecificInfoAlt.toString());
sb.append("]");
}
sb.append("]");
return sb.toString();
}
protected static final XMLFormat<EventSpecificInformationBCSMImpl> EVENT_SPECIFIC_INFORMATION_BCSM_XML = new XMLFormat<EventSpecificInformationBCSMImpl>(
EventSpecificInformationBCSMImpl.class) {
@Override
public void read(javolution.xml.XMLFormat.InputElement xml, EventSpecificInformationBCSMImpl eventSpecificInformationBCSM) throws XMLStreamException {
eventSpecificInformationBCSM.routeSelectFailureSpecificInfo = xml.get(ROUTE_SELECT_FAILURE_SPECIFIC_INFO, RouteSelectFailureSpecificInfoImpl.class);
eventSpecificInformationBCSM.oCalledPartyBusySpecificInfo = xml.get(O_CALLED_PARTY_BUSY_SPECIFIC_INFO, OCalledPartyBusySpecificInfoImpl.class);
eventSpecificInformationBCSM.oNoAnswerSpecificInfo = xml.get(O_NO_ANSWER_SPECIFIC_INFO, ONoAnswerSpecificInfoImpl.class);
eventSpecificInformationBCSM.oAnswerSpecificInfo = xml.get(O_ANSWER_SPECIFIC_INFO, OAnswerSpecificInfoImpl.class);
eventSpecificInformationBCSM.oMidCallSpecificInfo = xml.get(O_MID_CALL_SPECIFIC_INFO, OMidCallSpecificInfoImpl.class);
eventSpecificInformationBCSM.oDisconnectSpecificInfo = xml.get(O_DISCONNECT_SPECIFIC_INFO, ODisconnectSpecificInfoImpl.class);
eventSpecificInformationBCSM.tBusySpecificInfo = xml.get(T_BUSY_SPECIFIC_INFO, TBusySpecificInfoImpl.class);
eventSpecificInformationBCSM.tNoAnswerSpecificInfo = xml.get(T_NO_ANSWER_SPECIFIC_INFO, TNoAnswerSpecificInfoImpl.class);
eventSpecificInformationBCSM.tAnswerSpecificInfo = xml.get(T_ANSWER_SPECIFIC_INFO, TAnswerSpecificInfoImpl.class);
eventSpecificInformationBCSM.tMidCallSpecificInfo = xml.get(T_MID_CALL_SPECIFIC_INFO, TMidCallSpecificInfoImpl.class);
eventSpecificInformationBCSM.tDisconnectSpecificInfo = xml.get(T_DISCONNECT_SPECIFIC_INFO, TDisconnectSpecificInfoImpl.class);
eventSpecificInformationBCSM.oTermSeizedSpecificInfo = xml.get(O_TERM_SPECIFIC_INFO, OTermSeizedSpecificInfoImpl.class);
eventSpecificInformationBCSM.callAcceptedSpecificInfo = xml.get(CALL_ACCEPTED_SPECIFIC_INFO, CallAcceptedSpecificInfoImpl.class);
eventSpecificInformationBCSM.oAbandonSpecificInfo = xml.get(O_ABONDON_SPECIFIC_INFO, OAbandonSpecificInfoImpl.class);
eventSpecificInformationBCSM.oChangeOfPositionSpecificInfo = xml.get(O_CHANGE_OF_POSITION_SPECIFIC_INFO, OChangeOfPositionSpecificInfoImpl.class);
eventSpecificInformationBCSM.tChangeOfPositionSpecificInfo = xml.get(T_CHANGE_OF_POSITION_SPECIFIC_INFO, TChangeOfPositionSpecificInfoImpl.class);
eventSpecificInformationBCSM.dpSpecificInfoAlt = xml.get(DP_SPECIFIC_INFO_ALT, DpSpecificInfoAltImpl.class);
}
@Override
public void write(EventSpecificInformationBCSMImpl eventSpecificInformationBCSM,
javolution.xml.XMLFormat.OutputElement xml) throws XMLStreamException {
if (eventSpecificInformationBCSM.routeSelectFailureSpecificInfo != null) {
xml.add((RouteSelectFailureSpecificInfoImpl) eventSpecificInformationBCSM.routeSelectFailureSpecificInfo, ROUTE_SELECT_FAILURE_SPECIFIC_INFO,
RouteSelectFailureSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.oCalledPartyBusySpecificInfo != null) {
xml.add((OCalledPartyBusySpecificInfoImpl) eventSpecificInformationBCSM.oCalledPartyBusySpecificInfo, O_CALLED_PARTY_BUSY_SPECIFIC_INFO,
OCalledPartyBusySpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.oNoAnswerSpecificInfo != null) {
xml.add((ONoAnswerSpecificInfoImpl) eventSpecificInformationBCSM.oNoAnswerSpecificInfo, O_NO_ANSWER_SPECIFIC_INFO,
ONoAnswerSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.oAnswerSpecificInfo != null) {
xml.add((OAnswerSpecificInfoImpl) eventSpecificInformationBCSM.oAnswerSpecificInfo, O_ANSWER_SPECIFIC_INFO, OAnswerSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.oMidCallSpecificInfo != null) {
xml.add((OMidCallSpecificInfoImpl) eventSpecificInformationBCSM.oMidCallSpecificInfo, O_MID_CALL_SPECIFIC_INFO, OMidCallSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.oDisconnectSpecificInfo != null) {
xml.add((ODisconnectSpecificInfoImpl) eventSpecificInformationBCSM.oDisconnectSpecificInfo, O_DISCONNECT_SPECIFIC_INFO,
ODisconnectSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.tBusySpecificInfo != null) {
xml.add((TBusySpecificInfoImpl) eventSpecificInformationBCSM.tBusySpecificInfo, T_BUSY_SPECIFIC_INFO, TBusySpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.tNoAnswerSpecificInfo != null) {
xml.add((TNoAnswerSpecificInfoImpl) eventSpecificInformationBCSM.tNoAnswerSpecificInfo, T_NO_ANSWER_SPECIFIC_INFO,
TNoAnswerSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.tAnswerSpecificInfo != null) {
xml.add((TAnswerSpecificInfoImpl) eventSpecificInformationBCSM.tAnswerSpecificInfo, T_ANSWER_SPECIFIC_INFO, TAnswerSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.tMidCallSpecificInfo != null) {
xml.add((TMidCallSpecificInfoImpl) eventSpecificInformationBCSM.tMidCallSpecificInfo, T_MID_CALL_SPECIFIC_INFO, TMidCallSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.tDisconnectSpecificInfo != null) {
xml.add((TDisconnectSpecificInfoImpl) eventSpecificInformationBCSM.tDisconnectSpecificInfo, T_DISCONNECT_SPECIFIC_INFO,
TDisconnectSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.oTermSeizedSpecificInfo != null) {
xml.add((OTermSeizedSpecificInfoImpl) eventSpecificInformationBCSM.oTermSeizedSpecificInfo, O_TERM_SPECIFIC_INFO,
OTermSeizedSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.callAcceptedSpecificInfo != null) {
xml.add((CallAcceptedSpecificInfoImpl) eventSpecificInformationBCSM.callAcceptedSpecificInfo, CALL_ACCEPTED_SPECIFIC_INFO,
CallAcceptedSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.oAbandonSpecificInfo != null) {
xml.add((OAbandonSpecificInfoImpl) eventSpecificInformationBCSM.oAbandonSpecificInfo, O_ABONDON_SPECIFIC_INFO, OAbandonSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.oChangeOfPositionSpecificInfo != null) {
xml.add((OChangeOfPositionSpecificInfoImpl) eventSpecificInformationBCSM.oChangeOfPositionSpecificInfo, O_CHANGE_OF_POSITION_SPECIFIC_INFO,
OChangeOfPositionSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.tChangeOfPositionSpecificInfo != null) {
xml.add((TChangeOfPositionSpecificInfoImpl) eventSpecificInformationBCSM.tChangeOfPositionSpecificInfo, T_CHANGE_OF_POSITION_SPECIFIC_INFO,
TChangeOfPositionSpecificInfoImpl.class);
}
if (eventSpecificInformationBCSM.dpSpecificInfoAlt != null) {
xml.add((DpSpecificInfoAltImpl) eventSpecificInformationBCSM.dpSpecificInfoAlt, DP_SPECIFIC_INFO_ALT, DpSpecificInfoAltImpl.class);
}
}
};
}