question: private void processTSBK ( TSBKMessage tsbk ) { broadcast ( new DecoderStateEvent ( this , Event . CONTINUATION , State . CONTROL ) ) ; if ( tsbk . getVendor ( ) == Vendor . STANDARD ) { switch ( tsbk . getOpcode ( ) ) { case ADJACENT_STATUS_BROADCAST : if ( tsbk instanceof AdjacentStatusBroadcast ) { IAdjacentSite ias = ( IAdjacentSite ) tsbk ; mNeighborMap . put ( ias . getUniqueID ( ) , ias ) ; updateSystem ( ias . getSystemID ( ) ) ; } break ; case ACKNOWLEDGE_RESPONSE : processTSBKResponse ( tsbk ) ; break ; case AUTHENTICATION_COMMAND : processTSBKCommand ( tsbk ) ; break ; case CALL_ALERT : processTSBKPage ( tsbk ) ; break ; case DENY_RESPONSE : processTSBKResponse ( tsbk ) ; break ; case EXTENDED_FUNCTION_COMMAND : processTSBKCommand ( tsbk ) ; break ; case GROUP_AFFILIATION_QUERY : processTSBKQuery ( tsbk ) ; break ; case GROUP_AFFILIATION_RESPONSE : processTSBKResponse ( tsbk ) ; break ; case GROUP_DATA_CHANNEL_ANNOUNCEMENT : case GROUP_DATA_CHANNEL_ANNOUNCEMENT_EXPLICIT : processTSBKDataChannelAnnouncement ( tsbk ) ; break ; case GROUP_DATA_CHANNEL_GRANT : case GROUP_VOICE_CHANNEL_GRANT : case GROUP_VOICE_CHANNEL_GRANT_UPDATE : case GROUP_VOICE_CHANNEL_GRANT_UPDATE_EXPLICIT : case INDIVIDUAL_DATA_CHANNEL_GRANT : case TELEPHONE_INTERCONNECT_VOICE_CHANNEL_GRANT : case TELEPHONE_INTERCONNECT_VOICE_CHANNEL_GRANT_UPDATE : case UNIT_TO_UNIT_VOICE_CHANNEL_GRANT : case UNIT_TO_UNIT_VOICE_CHANNEL_GRANT_UPDATE : processTSBKChannelGrant ( tsbk ) ; break ; case IDENTIFIER_UPDATE_NON_VUHF : case IDENTIFIER_UPDATE_VHF_UHF_BANDS : IdentifierUpdate iu = ( IdentifierUpdate ) tsbk ; if ( ! mBands . containsKey ( iu . getIdentifier ( ) ) ) { mBands . put ( iu . getIdentifier ( ) , iu ) ; } break ; case LOCATION_REGISTRATION_RESPONSE : case UNIT_DEREGISTRATION_ACKNOWLEDGE : processTSBKResponse ( tsbk ) ; break ; case MESSAGE_UPDATE : processTSBKMessage ( tsbk ) ; break ; case NETWORK_STATUS_BROADCAST : mNetworkStatus = ( module . decode . p25 . message . tsbk . osp . control . NetworkStatusBroadcast ) tsbk ; break ; case PROTECTION_PARAMETER_UPDATE : processTSBKResponse ( tsbk ) ; break ; case QUEUED_RESPONSE : processTSBKResponse ( tsbk ) ; break ; case RADIO_UNIT_MONITOR_COMMAND : processTSBKCommand ( tsbk ) ; break ; case RFSS_STATUS_BROADCAST : processTSBKRFSSStatus ( ( RFSSStatusBroadcast ) tsbk ) ; break ; case ROAMING_ADDRESS_COMMAND : processTSBKCommand ( tsbk ) ; break ; case SECONDARY_CONTROL_CHANNEL_BROADCAST : module . decode . p25 . message . tsbk . osp . control . SecondaryControlChannelBroadcast sccb = ( module . decode . p25 . message . tsbk . osp . control . SecondaryControlChannelBroadcast ) tsbk ; if ( sccb . getDownlinkFrequency1 ( ) > 0 ) { mSecondaryControlChannels . add ( sccb ) ; } break ; case SNDCP_DATA_CHANNEL_ANNOUNCEMENT_EXPLICIT : mSNDCPDataChannel = ( SNDCPDataChannelAnnouncementExplicit ) tsbk ; break ; case SNDCP_DATA_CHANNEL_GRANT : processTSBKChannelGrant ( tsbk ) ; break ; case STATUS_QUERY : processTSBKQuery ( tsbk ) ; break ; case STATUS_UPDATE : processTSBKResponse ( tsbk ) ; break ; case TELEPHONE_INTERCONNECT_ANSWER_REQUEST : case UNIT_TO_UNIT_ANSWER_REQUEST : processTSBKPage ( tsbk ) ; break ; case UNIT_REGISTRATION_COMMAND : processTSBKCommand ( tsbk ) ; break ; case UNIT_REGISTRATION_RESPONSE : processTSBKResponse ( tsbk ) ; break ; default : break ; } } else if ( tsbk . getVendor ( ) == Vendor . MOTOROLA ) { processMotorolaTSBK ( ( MotorolaTSBKMessage ) tsbk ) ; } }
target:  Process a Trunking Signalling Block message 