void To_str(String_bldr sb, XtoStrWkr wkr, GfoMsg m) { sb.Add(m.Key()); if (m.Subs_count() == 0) { sb.Add(":"); boolean first = true; for (int i = 0; i < m.Args_count(); i++) { Keyval kv = m.Args_getAt(i); if (kv.Val() == null) continue; if (!first) sb.Add(" "); sb.Add(kv.Key()); sb.Add("='"); sb.Add(wkr.To_str(kv.Val())); sb.Add("'"); first = false; } sb.Add(";"); } else { sb.Add("."); To_str(sb, wkr, m.Subs_getAt(0)); } }