|
Revision 16743, 0.8 kB
(checked in by nowelium, 4 months ago)
|
|
lang/io/Log4Io: パッケージに分けてみた
|
| Line | |
|---|
| 1 | Log4Io 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 | |
|---|