private void insert(Map<String,String> abbrevToItem,String item,String abbrev){
  abbrev=expand(item,abbrev);
  if (!abbrevToItem.containsKey(abbrev)) {
    abbrevToItem.put(abbrev,item);
  }
 else {
    String other=abbrevToItem.get(abbrev);
    if (!item.equals(other)) {
      if (!abbrev.equals(other)) {
        abbrevToItem.put(abbrev,null);
        if (other != null) {
          insert(abbrevToItem,other,abbrev);
        }
      }
      if (other == null && item.equals(abbrev)) {
        abbrevToItem.put(abbrev,item);
      }
 else {
        insert(abbrevToItem,item,abbrev);
      }
    }
  }
}

private void insert ( Map < String , String > abbrevToItem , String item , String abbrev ) { abbrev = expand ( item , abbrev ) ; if ( ! abbrevToItem . containsKey ( abbrev ) ) { abbrevToItem . put ( abbrev , item ) ; } else { String other = abbrevToItem . get ( abbrev ) ; if ( ! item . equals ( other ) ) { if ( ! abbrev . equals ( other ) ) { abbrevToItem . put ( abbrev , null ) ; if ( other != null ) { insert ( abbrevToItem , other , abbrev ) ; } } if ( other == null && item . equals ( abbrev ) ) { abbrevToItem . put ( abbrev , item ) ; } else { insert ( abbrevToItem , item , abbrev ) ; } } } }
insert an entry in a map of abbreviations to items .
