design_notes.md
44 lines
| 1.2 KiB
| text/x-minidsrc
|
MarkdownLexer
|
|
r48 | # design notes | |
| ## core model | |||
| - OutgoingRegistry (Variant) | |||
| исходящая конфигурация | |||
| - [provider] configuration | |||
| - [container, live] slots | |||
| набор вариантов (слотов) | |||
| - [property] primarySlot | |||
| - AssemblyRegistry (Varaint, Slot) | |||
| содержимое слота может быть добавлено после появления слота в OutgoingRegistry | |||
| - assembleTask | |||
| - inputs | |||
| - compile unit output (CompileUnit, String) | |||
| - direct object (task, file collection, etc.) | |||
| - artifact: directory | |||
| - customTask | |||
| - artifact: FileSystemLocation | |||
| ## extension | |||
| - adapter | |||
| - whenFinalized | |||
| - dsl | |||
| - variant(name) | |||
| - slot(name) | |||
| - from*** | |||
| - whenFinalized | |||
| - whenOutgoingConfiguration | |||
| - whenOutgoingSlot | |||
|
|
r49 | ||
| outgoing = outgoings.maybeCreate(variant) | |||
| slot = outgoings.slots.maybeCreate(slotName) | |||
| assembly = assemblies.register(variantSlot, task, mapOutput) | |||
| outgoing.configure(configuration -> { | |||
| slots.all(slot -> { | |||
| assemblies.when(variant, slot) { assembly -> | |||
| configuration.variants.create(slot.name) { | |||
| artifact(assembly.artifact) | |||
| } | |||
| } | |||
| }); | |||
| }); |
