checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / ReflectiveWalker.java
index 186fa3b..ad057a7 100644 (file)
@@ -10,7 +10,7 @@ public class ReflectiveWalker extends StringWalker {
     public ReflectiveWalker()              { this.target = this; }
     public ReflectiveWalker(Object target) { this.target = target; }
     private final Object target;
-    private String normalize(String s) {
+    public static String mangle(String s) {
         StringBuffer ret = new StringBuffer();
         for(int i=0; i<s.length(); i++) {
             char c = s.charAt(i);
@@ -57,7 +57,7 @@ public class ReflectiveWalker extends StringWalker {
     /*
     public Object walk(Tree<String> tree) {
         if (tree.head()!=null) {
-            Member m = member("$"+normalize(tree.head()), 0, false);
+            Member m = member("$"+mangle(tree.head()), 0, false);
             if (m!=null) {
                 if ((m instanceof Method) && ((Method)m).getReturnType()==Void.TYPE) {
                     Reflection.fuzzyInvoke(target, m, new Object[0]);
@@ -69,7 +69,7 @@ public class ReflectiveWalker extends StringWalker {
     */
     public void walk(String tag) {
         if (tag==null) return;
-        Member m = member(normalize(tag), 0, false);
+        Member m = member(mangle(tag), 0, false);
         if (m!=null) Reflection.fuzzyInvoke(target, m);
     }
     protected Object defaultWalk(String tag, Object[] argo) { return super.walk(tag, argo); }
@@ -77,7 +77,7 @@ public class ReflectiveWalker extends StringWalker {
         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, false);
+        Member m = tag==null ? null : member(mangle(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);