checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / ReflectiveWalker.java
index c838a5e..186fa3b 100644 (file)
@@ -72,12 +72,13 @@ public class ReflectiveWalker extends StringWalker {
         Member m = member(normalize(tag), 0, false);
         if (m!=null) Reflection.fuzzyInvoke(target, m);
     }
+    protected Object defaultWalk(String tag, Object[] argo) { return super.walk(tag, argo); }
     public Object walk(String tag, Object[] argo) {
         if (argo.length==0) return super.walk(tag, argo);
         if (argo==null) return tag;
         if (tag==null || "".equals(tag)) return argo;
-        Member m = tag==null ? null : member(normalize(tag), argo.length, argo.length>0);
-        if (m==null) return super.walk(tag, argo);
+        Member m = tag==null ? null : member(normalize(tag), argo.length, false);
+        if (m==null) return defaultWalk(tag, argo);
         //System.out.println("preparing to invoke method " + (m==null ? "null" : (m.toString())) + " for sequence " + (owner()+"."+tag));
         if (m != null) return Reflection.fuzzyInvoke(target, m, argo);
         if (argo.length==0) return null;