Seletores
Um seletor nomeia um conjunto de caixas sem listá-las. É o que faz um diagrama não envelhecer.
A tabela
Seção intitulada “A tabela”| Seletor | Traz | Vale em where e match? |
|---|---|---|
ref: <caixa> | exatamente aquela caixa | não |
children: <caixa> | os filhos diretos | não |
descendants: <caixa> | todos os descendentes | não |
descendants: <caixa> + depth: <n> | os descendentes até n níveis | não |
tag: <etiqueta> | quem tem a etiqueta | sim |
meta: { <chave>: <valor> } | quem tem o metadado | sim |
level: <nível> | context, container, component, code | sim |
shape: <forma> | quem tem a forma | sim |
project: <id> | tudo de um projeto | sim |
Os três primeiros produzem conjuntos a partir de uma caixa nomeada, e por isso não servem como predicado: eles não respondem “sim ou não” sobre uma caixa.
tag, level e shape aceitam uma lista, que combina com ou. Em meta, o
valor de cada chave também aceita uma lista.
Onde eles aparecem
Seção intitulada “Onde eles aparecem”| Lugar | Quais |
|---|---|
include de um diagrama | todos |
exclude de um diagrama | todos |
where de um diagrama | só os predicados |
include de um grupo | todos |
match de um grupo | só os predicados |
No YAML
Seção intitulada “No YAML”include: - reservas # atalho para { ref: reservas } - ref: colaborador - children: reservas - descendants: reservas depth: 2 - tag: nucleo - tag: [nucleo, pci] # nucleo OU pci - meta: dominio: reservas - meta: dominio: [reservas, integracao] - level: container - level: [container, component] - shape: [database, queue] - project: sharedVários seletores na mesma lista somam — a união de todos.
Na linha de comando
Seção intitulada “Na linha de comando”Um critério se escreve <chave>:<valor>. Não há ambiguidade com um
identificador, porque identificador não aceita dois-pontos.
--include level:context--include tag:nucleo--include children:reservas--include descendants:reservas:2--include shape:queue--include project:shared--include meta:dominio=reservas--where level:containerUm valor sem <chave>: é lido como uma referência:
--include reservas # o mesmo que ref:reservasNa busca do MCP
Seção intitulada “Na busca do MCP”A ferramenta cfour_search aceita a mesma sintaxe no parâmetro seletor, e
vários critérios separados por espaço combinam com e:
tag:nucleo level:containermeta:dominio=reservas shape:databasedescendants:reservas:2A ordem em que eles se aplicam
Seção intitulada “A ordem em que eles se aplicam”1. include (ou os filhos de `scope`, quando não há include)2. where filtra o que entrou3. exclude tira4. neighbors puxa contexto mudo, fora da fronteirawhere só filtra o que include trouxe; exclude age depois do filtro; e
nenhum dos três alcança o que neighbors puxa.
Depurar
Seção intitulada “Depurar”cfour diagram show <id> --resolvedA terceira coluna da saída diz qual seletor trouxe cada caixa.