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=186fa3bee32694c73e384a081de68622e98da253;hp=c838a5e9da76e333f2b84d152d49f85ca50c16d5;hb=92632cd2b60dc20e157128696edc81e3a07eaec6;hpb=83b94810a384ee3b579cc83c51f26dc7100e25b8 diff --git a/src/edu/berkeley/sbp/misc/ReflectiveWalker.java b/src/edu/berkeley/sbp/misc/ReflectiveWalker.java index c838a5e..186fa3b 100644 --- a/src/edu/berkeley/sbp/misc/ReflectiveWalker.java +++ b/src/edu/berkeley/sbp/misc/ReflectiveWalker.java @@ -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;