private boolean handleMessageDuplexInfoReport(LocoNetMessage m){
  String gr_name="";
  String gr_password="";
  int gr_ch;
  int gr_id;
  int i;
  if (getDuplexGroupIdentityMessageType(m) == DuplexGroupMessageType.DUPLEX_GROUP_NAME_ETC_REPORT_MESSAGE) {
    gr_name=extractDuplexGroupName(m);
    i=(gr_name.length() - 1);
    while ((gr_name.charAt(i) == ' ') && (i > 0)) {
      if (i > 0) {
        gr_name=gr_name.substring(0,i);
      }
      i--;
    }
    gr_password=extractDuplexGroupPassword(m);
    gr_ch=extractDuplexGroupChannel(m);
    gr_id=extractDuplexGroupID(m);
    if (awaitingGroupReadReport == true) {
      awaitingGroupReadReport=false;
      acceptedGroupName=gr_name;
      acceptedGroupChannel=Integer.toString(gr_ch,LnDplxGrpInfoImplConstants.GENERAL_DECIMAL_RADIX);
      acceptedGroupPassword=gr_password;
      acceptedGroupId=Integer.toString(gr_id,LnDplxGrpInfoImplConstants.GENERAL_DECIMAL_RADIX);
      thisone.firePropertyChange(DPLX_PC_NAME_UPDATE,false,true);
      thisone.firePropertyChange(DPLX_PC_CHANNEL_UPDATE,false,true);
      thisone.firePropertyChange(DPLX_PC_PASSWORD_UPDATE,false,true);
      thisone.firePropertyChange(DPLX_PC_ID_UPDATE,false,true);
      thisone.firePropertyChange(DPLX_PC_NAME_VALIDITY,false,true);
      thisone.firePropertyChange(DPLX_PC_CHANNEL_VALIDITY,false,true);
      thisone.firePropertyChange(DPLX_PC_PASSWORD_VALIDITY,false,true);
      thisone.firePropertyChange(DPLX_PC_ID_VALIDITY,false,true);
      thisone.firePropertyChange(DPLX_PC_STAT_LN_UPDATE,""," ");
    }
 else {
      String c="" + Integer.toString(gr_ch,LnDplxGrpInfoImplConstants.GENERAL_DECIMAL_RADIX);
      String p="" + gr_password;
      String d="" + Integer.toString(gr_id,LnDplxGrpInfoImplConstants.GENERAL_DECIMAL_RADIX);
      if ((!acceptedGroupName.equals(gr_name)) || (!acceptedGroupChannel.equals(c)) || (!acceptedGroupPassword.equals(p))|| (!acceptedGroupId.equals(d))) {
        thisone.firePropertyChange(DPLX_PC_STAT_LN_UPDATE," ","ErrorGroupMismatch");
      }
    }
    return true;
  }
  return false;
}

private boolean handleMessageDuplexInfoReport ( LocoNetMessage m ) { String gr_name = "" ; String gr_password = "" ; int gr_ch ; int gr_id ; int i ; if ( getDuplexGroupIdentityMessageType ( m ) == DuplexGroupMessageType . DUPLEX_GROUP_NAME_ETC_REPORT_MESSAGE ) { gr_name = extractDuplexGroupName ( m ) ; i = ( gr_name . length ( ) - 1 ) ; while ( ( gr_name . charAt ( i ) == ' ' ) && ( i > 0 ) ) { if ( i > 0 ) { gr_name = gr_name . substring ( 0 , i ) ; } i -- ; } gr_password = extractDuplexGroupPassword ( m ) ; gr_ch = extractDuplexGroupChannel ( m ) ; gr_id = extractDuplexGroupID ( m ) ; if ( awaitingGroupReadReport == true ) { awaitingGroupReadReport = false ; acceptedGroupName = gr_name ; acceptedGroupChannel = Integer . toString ( gr_ch , LnDplxGrpInfoImplConstants . GENERAL_DECIMAL_RADIX ) ; acceptedGroupPassword = gr_password ; acceptedGroupId = Integer . toString ( gr_id , LnDplxGrpInfoImplConstants . GENERAL_DECIMAL_RADIX ) ; thisone . firePropertyChange ( DPLX_PC_NAME_UPDATE , false , true ) ; thisone . firePropertyChange ( DPLX_PC_CHANNEL_UPDATE , false , true ) ; thisone . firePropertyChange ( DPLX_PC_PASSWORD_UPDATE , false , true ) ; thisone . firePropertyChange ( DPLX_PC_ID_UPDATE , false , true ) ; thisone . firePropertyChange ( DPLX_PC_NAME_VALIDITY , false , true ) ; thisone . firePropertyChange ( DPLX_PC_CHANNEL_VALIDITY , false , true ) ; thisone . firePropertyChange ( DPLX_PC_PASSWORD_VALIDITY , false , true ) ; thisone . firePropertyChange ( DPLX_PC_ID_VALIDITY , false , true ) ; thisone . firePropertyChange ( DPLX_PC_STAT_LN_UPDATE , "" , " " ) ; } else { String c = "" + Integer . toString ( gr_ch , LnDplxGrpInfoImplConstants . GENERAL_DECIMAL_RADIX ) ; String p = "" + gr_password ; String d = "" + Integer . toString ( gr_id , LnDplxGrpInfoImplConstants . GENERAL_DECIMAL_RADIX ) ; if ( ( ! acceptedGroupName . equals ( gr_name ) ) || ( ! acceptedGroupChannel . equals ( c ) ) || ( ! acceptedGroupPassword . equals ( p ) ) || ( ! acceptedGroupId . equals ( d ) ) ) { thisone . firePropertyChange ( DPLX_PC_STAT_LN_UPDATE , " " , "ErrorGroupMismatch" ) ; } } return true ; } return false ; }
interprets a received loconet message . if message is a report of duplex group identity information , extract it to local variables . else ignore .
