protected void decodeOptionalBody( ISUPParameterFactory parameterFactory, byte[] parameterBody, byte parameterCode) throws ParameterException { switch (parameterCode & 0xFF) { case CallingPartyCategory._PARAMETER_CODE: CallingPartyCategory RS = parameterFactory.createCallingPartyCategory(); ((AbstractISUPParameter) RS).decode(parameterBody); this.setCallingPartyCategory(RS); break; case CallingPartyNumber._PARAMETER_CODE: CallingPartyNumber x = parameterFactory.createCallingPartyNumber(); ((AbstractISUPParameter) x).decode(parameterBody); this.setCallingPartyNumber(x); break; case CallReference._PARAMETER_CODE: CallReference cf = parameterFactory.createCallReference(); ((AbstractISUPParameter) cf).decode(parameterBody); this.setCallReference(cf); break; case ConnectionRequest._PARAMETER_CODE: ConnectionRequest z = parameterFactory.createConnectionRequest(); ((AbstractISUPParameter) z).decode(parameterBody); this.setConnectionRequest(z); break; case ParameterCompatibilityInformation._PARAMETER_CODE: ParameterCompatibilityInformation cc = parameterFactory.createParameterCompatibilityInformation(); ((AbstractISUPParameter) cc).decode(parameterBody); this.setParameterCompatibilityInformation(cc); break; case NetworkSpecificFacility._PARAMETER_CODE: NetworkSpecificFacility v = parameterFactory.createNetworkSpecificFacility(); ((AbstractISUPParameter) v).decode(parameterBody); this.setNetworkSpecificFacility(v); break; default: throw new ParameterException( "Unrecognized parameter code for optional part: " + parameterCode); } }