{ TransferMode, MethodSignature, MethodParm, TraversalName, ClassName, Extends, Option, FileName, ExtName, ParamName, ReturnName } { public String toString() (@ java.io.StringWriter sw = new java.io.StringWriter(); java.io.PrintWriter pw = new java.io.PrintWriter(sw); universal_trv0(new PrintVisitor(pw)); pw.flush(); return sw.toString(); @) } ClassName { public boolean equals(Object o) (@ return (o instanceof ClassName) && (o.toString().equals(this.toString())); @) public int hashCode() (@ return this.toString().hashCode(); @) } JavaType { public String toString() (@ return get_type().toString(); @) } Portal { public String extendstoStringP() to Extends { (@ String retstr = "RIDL_Runtime.RIDL_ObjectP"; @) return (@ retstr @) before Extends (@ retstr = host.get_parent().toString()+"P"; @) } public String extendstoStringPP() to Extends { (@ String retstr = "RIDL_Runtime.RIDL_ObjectPP"; @) return (@ retstr @) before Extends (@ retstr = host.get_parent().toString()+"PP"; @) } } {MethodSignature, MethodParm} { String toSigStr(String methsuf) (@ java.io.StringWriter sw = new java.io.StringWriter(); java.io.PrintWriter pw = new java.io.PrintWriter(sw); sigtrv(new PrintSigV(pw,methsuf)); pw.flush(); return sw.toString(); @) String toIntSigStr(String methsuf, Args args) (@ java.io.StringWriter sw = new java.io.StringWriter(); java.io.PrintWriter pw = new java.io.PrintWriter(sw); sigtrv(new PrintIntV(pw, methsuf, args)); pw.flush(); return sw.toString(); @) String toArgStr() (@ java.io.StringWriter sw = new java.io.StringWriter(); java.io.PrintWriter pw = new java.io.PrintWriter(sw); argtrv(new PrintVisitor(pw)); pw.flush(); return sw.toString(); @) traversal sigtrv(UniversalVisitor) {bypassing TransferMode to *;} traversal argtrv(PrintVisitor) {bypassing {TransferMode, JavaType, ArraySpec_List} to *;} } PrintSigV { (@ PrintSigV(java.io.PrintWriter pw, String suf) {super(pw); suffix=suf;} String suffix; @) // add the suffix to the method name. after -> MethodName, name, Ident (@ out.print(suffix); @) } PrintIntV { (@ PrintIntV(java.io.PrintWriter pw, String suf, Args as) {super(pw,suf); args = as;} boolean gref; Args args; @) // just override one method: after the printing of JavaTypes before MethodSignature (@ gref = args.findTransferMode("return",host.get_returntype()).isgref(); @) before MethodParm (@ gref = args.findTransferMode(host.get_name().toString(), host.get_type()).isgref(); @) // override the printing of the type before -> JavaType, type, Ident (@ space(); if (gref) out.print("RIDL_Runtime.RIDL_Object"); else out.print(source.get_type()); needSpace = true; @) } TransferMode { boolean isgref() to GlobalRef { start (@ return_val = false; @) before GlobalRef (@ return_val = true; @) } }