--- /home/cpdev/src/classpath/gnu/xml/transform/Bindings.java	2005-07-10 05:32:33.000000000 +0000
+++ gnu/xml/transform/Bindings.java	2005-06-30 05:34:21.000000000 +0000
@@ -57,10 +57,6 @@
   implements XPathVariableResolver, Cloneable
 {
 
-  static final int VARIABLE = 0;
-  static final int PARAM = 1;
-  static final int WITH_PARAM = 2;
-
   final Stylesheet stylesheet;
 
   /**
@@ -73,21 +69,13 @@
    */
   final LinkedList parameters;
 
-  /**
-   * Argument (with-param) value stack.
-   */
-  final LinkedList withParameters;
-
   Bindings(Stylesheet stylesheet)
   {
     this.stylesheet = stylesheet;
     variables = new LinkedList();
     parameters = new LinkedList();
-    withParameters = new LinkedList();
-    for (int i = 0; i < 3; i++)
-      {
-        push(i);
-      }
+    push(true);
+    push(false);
   }
 
   public Object clone()
@@ -102,87 +90,53 @@
       }
   }
 
-  void push(int type)
+  void push(boolean global)
   {
-    switch (type)
+    if (global)
       {
-      case VARIABLE:
         variables.addFirst(new HashMap());
-        break;
-      case PARAM:
+      }
+    else
+      {
         parameters.addFirst(new HashMap());
-        break;
-      case WITH_PARAM:
-        withParameters.addFirst(new HashMap());
-        break;
       }
   }
 
-  void pop(int type)
+  void pop(boolean global)
   {
-    switch (type)
+    if (global)
       {
-      case VARIABLE:
         variables.removeFirst();
-        break;
-      case PARAM:
+      }
+    else
+      {
         parameters.removeFirst();
-        break;
-      case WITH_PARAM:
-        withParameters.removeFirst();
-        break;
       }
   }
 
-  public boolean containsKey(QName name, int type)
+  public boolean containsKey(String name, boolean global)
   {
-    Iterator i = null;
-    switch (type)
-      {
-      case VARIABLE:
-        i = variables.iterator();
-        break;
-      case PARAM:
-        i = parameters.iterator();
-        break;
-      case WITH_PARAM:
-        Map ctx = (Map) withParameters.getFirst();
-        return ctx.containsKey(name);
-      }
-    if (i != null)
+    Iterator i = global ? variables.iterator() : parameters.iterator();
+    while (i.hasNext())
       {
-        while (i.hasNext())
+        Map ctx = (Map) i.next();
+        if (ctx.containsKey(name))
           {
-            Map ctx = (Map) i.next();
-            if (ctx.containsKey(name))
-              {
-                return true;
-              }
+            return true;
           }
       }
     return false;
   }
 
-  public Object get(QName name, Node context, int pos, int len)
+  public Object get(String name, Node context, int pos, int len)
   {
     //System.err.println("bindings.get: "+name);
     //System.err.println("\t"+toString());
     Object ret = null;
-    //if (parameters.size() > 1 && containsKey(name, PARAM))
-      // check that template defines parameter
+    for (Iterator i = variables.iterator(); i.hasNext() && ret == null; )
       {
-        Map cwp = (Map) withParameters.getFirst();
-        ret = cwp.get(name);
-        //System.err.println("\twith-param: ret="+ret);
-      }
-    if (ret == null)
-      {
-        for (Iterator i = variables.iterator(); i.hasNext() && ret == null; )
-          {
-            Map vctx = (Map) i.next();
-            ret = vctx.get(name);
-          }
-        //System.err.println("\tvariable: ret="+ret);
+        Map vctx = (Map) i.next();
+        ret = vctx.get(name);
       }
     if (ret == null)
       {
@@ -191,7 +145,6 @@
             Map pctx = (Map) i.next();
             ret = pctx.get(name);
           }
-        //System.err.println("\tparam: ret="+ret);
       }
     /*if (ret instanceof Expr && context != null)
       {
@@ -210,29 +163,23 @@
     return ret;
   }
 
-  void set(QName name, Object value, int type)
+  void set(String name, Object value, boolean global)
   {
-    switch (type)
+    if (global)
+      {
+        Map context = (Map) variables.getFirst();
+        context.put(name, value);
+      }
+    else
       {
-      case VARIABLE:
-        Map vctx = (Map) variables.getFirst();
-        vctx.put(name, value);
-        break;
-      case PARAM:
-        Map pctx = (Map) parameters.getFirst();
-        pctx.put(name, value);
-        break;
-      case WITH_PARAM:
-        Map wctx = (Map) withParameters.getFirst();
-        wctx.put(name, value);
-        break;
+        Map context = (Map) parameters.getFirst();
+        context.put(name, value);
       }
-    //System.err.println("Set "+name+"="+value);
   }
 
   public Object resolveVariable(QName qName)
   {
-    return get(qName, null, 1, 1);
+    return get(qName.toString(), null, 1, 1);
   }
   
   public String toString()
@@ -240,31 +187,6 @@
     StringBuffer buf = new StringBuffer();
     boolean next = false;
     Collection seen = new HashSet();
-    Map wctx = (Map) withParameters.getFirst();
-    buf.append('(');
-    for (Iterator i = wctx.entrySet().iterator(); i.hasNext(); )
-      {
-        if (next)
-          {
-            buf.append(',');
-          }
-        else
-          {
-            next = true;
-          }
-        Map.Entry entry = (Map.Entry) i.next();
-        Object key = entry.getKey();
-        if (!seen.contains(key))
-          {
-            buf.append(key);
-            buf.append('=');
-            buf.append(entry.getValue());
-            seen.add(key);
-          }
-      }
-    buf.append(')');
-    next = false;
-    seen.clear();
     buf.append('{');
     for (Iterator i = variables.iterator(); i.hasNext(); )
       {
@@ -290,10 +212,6 @@
               }
           } 
       }
-    buf.append('}');
-    next = false;
-    seen.clear();
-    buf.append('[');
     for (Iterator i = parameters.iterator(); i.hasNext(); )
       {
         Map ctx = (Map) i.next();
@@ -318,8 +236,7 @@
               }
           } 
       }
-    buf.append(']');
+    buf.append('}');
     return buf.toString();
   }
-
 }
