21 lines
632 B
Plaintext
21 lines
632 B
Plaintext
(prop :Map<String,Entry> entries (new Map))
|
|
|
|
(method :Void process [:Archive archive]
|
|
(doFor e (entries.iterator)
|
|
(processEntry archive e)))
|
|
|
|
(defNew [&prop :EntryChecker canProcessEntry
|
|
&prop :EntryProcessor processEntry]
|
|
[])
|
|
|
|
(prop &mut :Null<EntryProcessor> onRemoveEntry)
|
|
|
|
(method :Void checkEntryInOrOut [:Archive archive :Entry e]
|
|
(if (canProcessEntry archive e)
|
|
(dictSet entries e.id e)
|
|
(when (entries.exists e.id)
|
|
(entries.remove e.id)
|
|
(when onRemoveEntry (onRemoveEntry archive e)))))
|
|
|
|
// TODO systems may need access to a UI or ArchiveController
|