root/lang/io/Log4Io/io/EventListener.io

Revision 16743, 0.8 kB (checked in by nowelium, 4 months ago)

lang/io/Log4Io: パッケージに分けてみた

Line 
1Log4Io EventListener := Object clone do(
2    init := method(
3        self listeners ::= List clone
4    )
5    addListener := method(listener,
6        listeners append(listener)
7    )
8    removeListener := method(listener,
9        findListenerIndexes(listener) foreach(i,
10            listeners removeAt(i)
11        )
12    )
13    dispatch := method(handler,
14        listeners foreach(listener,
15            e := try(
16                listener call(handler)
17            )
18            e catch(Exception,
19                Exception raise("could not run the listener: " .. listener .. "\n" .. e)
20            )
21        )
22    )
23    findListenerIndexes := method(listener,
24        indexes := List clone
25        listeners foreach(index, value,
26            if(value == listener) then(
27                indexes append(index)
28            )
29        )
30        indexes
31    )
32)
33
Note: See TracBrowser for help on using the browser.