// Yay funny naming time! ("shipping") /* transient event interface onRecordAdded as OnRecordAdded shipping RecordAdded; => stuff */ svoid tok_eventInterfaces(LS tok) { int i; while ((i = jfind(tok, "transient event interface as shipping ;")) >= 0) { int iStart = i ; i += 2; int iSemicolon = indexOf(tok, ";"); S listenerType = get(tok, i+4); S method = get(tok, i+8); S eventType = get(tok, i+12); int i = tok_leftScanModifiers int iStart = leftScanModifiers(tok, replaceTokens_reTok(tok, iStart, iSemicolon+1, tok_formatDollarVars([[interface $intf { void $method($eventType event); } transient L<$Listener> $list;\n" + "synchronized selfType $add($Listener l) { $list = addOrCreate($list, l); this; }\n" + "synchronized Cl<$Listener> $add_listeners() { ret cloneList($list); }\n" + "void $method($Event event) { fOr (l : $add_listeners()) a ?.$method(event); }" ]], +method, Event := eventType, add := method, list := method, Listener := listenerType, add_listeners := method + "_listeners") ); } }