Pular para o conteúdo

Seletores

Um seletor nomeia um conjunto de caixas sem listá-las. É o que faz um diagrama não envelhecer.

SeletorTrazVale em where e match?
ref: <caixa>exatamente aquela caixanão
children: <caixa>os filhos diretosnão
descendants: <caixa>todos os descendentesnão
descendants: <caixa> + depth: <n>os descendentes até n níveisnão
tag: <etiqueta>quem tem a etiquetasim
meta: { <chave>: <valor> }quem tem o metadadosim
level: <nível>context, container, component, codesim
shape: <forma>quem tem a formasim
project: <id>tudo de um projetosim

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.

LugarQuais
include de um diagramatodos
exclude de um diagramatodos
where de um diagramasó os predicados
include de um grupotodos
match de um gruposó os predicados
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: shared

Vários seletores na mesma lista somam — a união de todos.

Um critério se escreve <chave>:<valor>. Não há ambiguidade com um identificador, porque identificador não aceita dois-pontos.

Terminal window
--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:container

Um valor sem <chave>: é lido como uma referência:

Terminal window
--include reservas # o mesmo que ref:reservas

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:container
meta:dominio=reservas shape:database
descendants:reservas:2
1. include (ou os filhos de `scope`, quando não há include)
2. where filtra o que entrou
3. exclude tira
4. neighbors puxa contexto mudo, fora da fronteira

where só filtra o que include trouxe; exclude age depois do filtro; e nenhum dos três alcança o que neighbors puxa.

Terminal window
cfour diagram show <id> --resolved

A terceira coluna da saída diz qual seletor trouxe cada caixa.