func init // add using module sys.add_use('System.Text') // initialize properties if((linked("Result") or linked("GetString")) and linked("doConvert")) sys.add_var_extern('ba', 'byte[]') end this.setfield('ex', 'ex' + this.id) end func make_conv(data) return('Encoding.Convert(Encoding.' + this.props("srcEncoding").value + ', Encoding.' + this.props("dstEncoding").value + ', ' + d("Data") + ')') end func doConvert(data) blk.println('try {').inc() if(linked("Result") or linked("GetString")) blk.println(this.ba, ' = ', make_conv(data), ';') event("onConvert", this.ba) else event("onConvert", make_conv(data)) end blk.dec().println('} catch(ArgumentNullException ', this.ex, ') {').inc() event("onError", this.ex + '.Message') blk.dec().println('}') end func Result if(linked("doConvert")) return(this.ba) else return(make_conv()) end end func GetString if(linked("doConvert")) return('Encoding.'+ this.props("dstEncoding").value + '.GetString(' + this.ba + ')') else return('Encoding.'+ this.props("dstEncoding").value + '.GetString(' + make_conv() + ')') end end