buf.append('}');
buf.append(']');
  public String toString()  {    StringBuffer buf = new StringBuffer();    boolean next = false;    Collection seen = new HashSet();    buf.append('{');    for (Iterator i = variables.iterator(); i.hasNext(); )      {        Map ctx = (Map) i.next();        for (Iterator j = ctx.entrySet().iterator(); j.hasNext(); )          {            if (next)              {                buf.append(',');              }            else              {                next = true;              }            Map.Entry entry = (Map.Entry) j.next();            Object key = entry.getKey();            if (!seen.contains(key))              {                buf.append(key);                buf.append('=');                buf.append(entry.getValue());                seen.add(key);              }          }       }    for (Iterator i = parameters.iterator(); i.hasNext(); )      {        Map ctx = (Map) i.next();        for (Iterator j = ctx.entrySet().iterator(); j.hasNext(); )          {            if (next)              {                buf.append(',');              }            else              {                next = true;              }            Map.Entry entry = (Map.Entry) j.next();            Object key = entry.getKey();            if (!seen.contains(key))              {                buf.append(key);                buf.append('=');                buf.append(entry.getValue());                seen.add(key);              }          }       }    buf.append('}');    return buf.toString();  }