@Override protected void _decode(AsnInputStream asnIS, int length) throws CAPParsingComponentException, IOException, AsnException { this.roVolumeSinceLastTariffSwitch = -1; this.roVolumeTariffSwitchInterval = -1; 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 _ID_roVolumeSinceLastTariffSwitch: if (!ais.isTagPrimitive()) throw new CAPParsingComponentException( "Error while decoding " + _PrimitiveName + ".roVolumeSinceLastTariffSwitch: Parameter is not primitive", CAPParsingComponentExceptionReason.MistypedParameter); this.roVolumeSinceLastTariffSwitch = (int) ais.readInteger(); break; case _ID_roVolumeTariffSwitchInterval: if (!ais.isTagPrimitive()) throw new CAPParsingComponentException( "Error while decoding " + _PrimitiveName + ".roVolumeTariffSwitchInterval: Parameter is not primitive", CAPParsingComponentExceptionReason.MistypedParameter); this.roVolumeTariffSwitchInterval = (int) ais.readInteger(); break; default: ais.advanceElement(); break; } } else { ais.advanceElement(); } } }
private void _decode(AsnInputStream ansIS, int length) throws MAPParsingComponentException, IOException, AsnException { this.signalInfo = null; this.protocolId = null; this.extensionContainer = null; AsnInputStream ais = ansIS.readSequenceStreamData(length); while (true) { if (ais.available() == 0) break; int tag = ais.readTag(); if (ais.getTagClass() == Tag.CLASS_UNIVERSAL) { switch (tag) { case Tag.ENUMERATED: int code = (int) ais.readInteger(); this.protocolId = ProtocolId.getProtocolId(code); break; case Tag.STRING_OCTET: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException( "Error while decoding " + _PrimitiveName + ".signalInfo: Parameter extensionContainer is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); this.signalInfo = new SignalInfoImpl(); ((SignalInfoImpl) this.signalInfo).decodeAll(ais); break; case Tag.SEQUENCE: 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; default: ais.advanceElement(); break; } } } if (this.protocolId == null || this.signalInfo == null) throw new MAPParsingComponentException( "Error while decoding " + _PrimitiveName + ": protocolId and signalInfo must not be null", MAPParsingComponentExceptionReason.MistypedParameter); }
private void _decode(AsnInputStream ansIS, int length) throws CAPParsingComponentException, IOException, AsnException { this.elementaryMessageID = 0; this.variableParts = null; boolean elementaryMessageIDFound = false; 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 _ID_elementaryMessageID: this.elementaryMessageID = (int) ais.readInteger(); elementaryMessageIDFound = true; break; case _ID_variableParts: this.variableParts = new ArrayList<VariablePart>(); AsnInputStream ais2 = ais.readSequenceStream(); while (true) { if (ais2.available() == 0) break; ais2.readTag(); VariablePartImpl val = new VariablePartImpl(); val.decodeAll(ais2); this.variableParts.add(val); } break; default: ais.advanceElement(); break; } } else { ais.advanceElement(); } } if (this.variableParts == null || !elementaryMessageIDFound) throw new CAPParsingComponentException( "Error while decoding " + _PrimitiveName + ": elementaryMessageID and variableParts are mandatory but not found", CAPParsingComponentExceptionReason.MistypedParameter); }
private void _decode(AsnInputStream ansIS, int length) throws MAPParsingComponentException, IOException, AsnException { AsnInputStream ais = ansIS.readSequenceStreamData(length); locationInformation = false; subscriberState = false; extensionContainer = null; currentLocation = false; requestedDomain = null; imei = false; msClassmark = false; mnpRequestedInfo = false; while (true) { if (ais.available() == 0) break; int tag = ais.readTag(); if (ais.getTagClass() == Tag.CLASS_CONTEXT_SPECIFIC) { switch (tag) { case _ID_locationInformation: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException( "Error while decoding RequestedInfo: Parameter is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); ais.readNull(); this.locationInformation = Boolean.TRUE; break; case _ID_subscriberState: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException( "Error while decoding RequestedInfo: Parameter is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); ais.readNull(); this.subscriberState = Boolean.TRUE; break; case _ID_extensionContainer: if (ais.isTagPrimitive()) throw new MAPParsingComponentException( "Error while decoding RequestedInfo: Parameter is primitive", MAPParsingComponentExceptionReason.MistypedParameter); extensionContainer = new MAPExtensionContainerImpl(); ((MAPExtensionContainerImpl) extensionContainer).decodeAll(ais); break; case _ID_currentLocation: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException( "Error while decoding RequestedInfo: Parameter is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); ais.readNull(); this.currentLocation = Boolean.TRUE; break; case _ID_requestedDomain: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException( "Error while decoding RequestedInfo: Parameter is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); int i1 = (int) ais.readInteger(); this.requestedDomain = DomainType.getInstance(i1); break; case _ID_msclassmark: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException( "Error while decoding RequestedInfo: Parameter is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); ais.readNull(); this.msClassmark = Boolean.TRUE; break; case _ID_imei: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException( "Error while decoding RequestedInfo: Parameter is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); ais.readNull(); this.imei = Boolean.TRUE; break; case _ID_mnpRequestedInfo: if (!ais.isTagPrimitive()) throw new MAPParsingComponentException( "Error while decoding RequestedInfo: Parameter is not primitive", MAPParsingComponentExceptionReason.MistypedParameter); ais.readNull(); this.mnpRequestedInfo = Boolean.TRUE; break; default: ais.advanceElement(); break; } } else { ais.advanceElement(); } } }