X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FReflectiveWalker.java;fp=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FReflectiveWalker.java;h=ad057a75264b3d32ab3f305856140bbd1b5e920d;hp=186fa3bee32694c73e384a081de68622e98da253;hb=45d799349e635f1a99e3974e4504a43d5a7aaf33;hpb=95c87aa402977de2b96c48bd14c439b46ad49777 diff --git a/src/edu/berkeley/sbp/misc/ReflectiveWalker.java b/src/edu/berkeley/sbp/misc/ReflectiveWalker.java index 186fa3b..ad057a7 100644 --- a/src/edu/berkeley/sbp/misc/ReflectiveWalker.java +++ b/src/edu/berkeley/sbp/misc/ReflectiveWalker.java @@ -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 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);