Looplex Knowledge Base

Add

O tube add tem como função adicionar elementos a uma coleção específica, podendo ser aplicado em listas e vetores. Quando utilizado em listas, o elemento a ser adicionado deve estar cadastrado como uma das opções da própria lista para que o tube extraia a informação.

No caso do uso com vetores, o tube add adiciona elementos dentro de uma variável do tipo Vector, que pode anteriormente estar vazia ou não. Os elementos são sempre adicionados ao final do vetor.

Além disso, o tube também permite adicionar uma coleção a outra, funcionando como uma espécie de AddAll. Por exemplo, se dentro de um |vectX| temos os elementos "A", "B" e "C", ao utilizar o |vectY|.add(|vectX|), todos os elementos "A", "B" e "C" serão adicionados ao vetor |vectY|.

Formato:

<var_list>.add("opção")

ou

|vect|.add("valor")

Parâmetros:

a) Lista:

  • var_list: Trata-se da variável do tipo lista à qual serão adicionados os elementos da coleção.
  • opcao: Trata-se do item constante na lista que será adicionado à coleção.

b) Vetor:

  • vect: Trata-se do vetor no qual serão adicionados os elementos da coleção.
  • valor: Trata-se do item imputado ao vetor que será adicionado à coleção.

Obs: Importante destacar que o tube possui apenas dois parâmetros sendo o primeiro a própria coleção e o segundo as informações que a ela serão imputadas. Na descrição acima, houve a separação dos parâmetros de listas e vetores apenas para tornar a visualização mais clara.

Retorno:

Apesar da essência do tube add ser adicionar elementos à uma coleção, seu retorno é booleano (true ou false) e pode ser utilizado como condições de operadores como if, elseif e printif.

O tube add retorna true se o elemento passado como parâmetro foi adicionado com sucesso à coleção e false caso não tenha sido adicionado em função de duplicatas.

Por exemplo, considere o vetor |vect| vazio e a lista não-atômica <varLista>, cujas opções cadastradas são "A", "B" e "C". Ao realizarmos o .add("A") duas vezes em cada uma das variáveis, teremos que os usos do add no |vect| retornarão true e true, enquanto na <varLista> teremos como retorno true e false, já que depois do primeiro add, o elemento "A" já foi selecionado na lista e não será adicionado com sucesso uma segunda vez.

operations {
print |vect|.add("A") & "\b",
print |vect|.add("A") & "\b\b",
print <varLista>.add("A") & "\b",
print <varLista>.add("A") & "\b\b",
print |vect| & "\b\b",
print <varLista>
}

Retorno:

True
True
True
False
A e A
A

Exemplos:

1. add com vetor. Para operar o tube utilizando vetores, deve ser criado um vetor que poderá ser ghost (não aparece na tela para o usuário) ou não (aparece para o usuário) onde serão adicionados os elementos da coleção. No exemplo abaixo, criamos uma lista de pedidos não atômica ("atomic = false") e um vetor String ghost de pedidos, sendo que a este serão atribuídas as informações da coleção a ser criada. Note que os parâmetros "vect" e "valor" foram devidamente respeitados durante a utilização do tube para seu correto funcionamento:

Obs: Para criar um vetor ghost basta alterar o mandatory para "-".

declarations {
+<pedidos> : List (
"danos materiais",
"danos morais",
"concessão do pedido de liminar",
"lucros cessantes",
"concessão dos benefícios da justiça gratuita",
"realização de audiência de conciliação",
"honorários advocatícios"
) {
name = "Pedidos"
request = "Indique os pedidos do autor"
atomic = false
},
-|conjuntoPedidos| : Vector[String]
}
operations {
if ("danos morais" IN <pedidos>) {
|conjuntoPedidos|.add("danos morais")
},
print "O autor requereu em sua inicial a condenação dos réus em " & |conjuntoPedidos| & "."
}

Retorno:

O autor requereu em sua inicial a condenação dos réus em danos morais.

2. add com lista. Para operar o tube utilizando lista, basta criar uma lista com as opções desejadas, o tube será utilizado com a finalidade de marcar uma opção “obrigatória” na lista, a qual o usuário não poderá desmarcar. No exemplo abaixo, utilizamos uma lista não atômica (atomic = false), ou seja, o usuário poderá selecionar mais de uma opção, contudo, não conseguirá desmarcar a opção adicionada ao tube add, conforme segue:

declarations {
+<pedidos> : List (
"danos materiais",
"danos morais",
"concessão do pedido de liminar",
"lucros cessantes",
"concessão dos benefícios da justiça gratuita",
"realização de audiência de conciliação",
"honorários advocatícios") {
name = "Pedidos"
request = "Indique os pedidos do autor"
atomic = false
}
}
operations {
<pedidos>.add("danos materiais "),
print " Diante exposto, requer: " & <pedidos> & "."
}

Visualização no sistema:

Exemplo 2

Retorno:

Diante exposto, requer: danos materiais.

3. add com coleção em vetor. O tube permite que seja realizada a inclusão de uma coleção a outra. No exemplo a seguir, utilizamos uma lista de pedidos não atômica (atomic = false), na qual de forma obrigatória deverão constar os itens “danos morais” e “concessão dos benefícios da justiça gratuita”, estes itens correspondem a uma coleção, note que os itens devem estar entre chaves “{ }”, para que o sistema identifique que se trata de uma coleção. A esta coleção, serão incluídos os demais itens selecionados pelo usuário, estes correspondem a uma segunda coleção. Desta forma, ao final da operação, o tube retornará ao usuário as coleções unificadas, conforme segue demonstrado:

declarations {
-|conjuntoPedidos| : Vector[String]
}
operations {
|conjuntoPedidos|.add({"danos materiais", "concessão dos benefícios da justiça gratuita"}),
print "Diante exposto, requer: " & |conjuntoPedidos| & "."
}

Visualização no sistema:

Exemplo 3

Retorno:

Diante exposto, requer: danos materiais, concessão dos benefícios da justiça gratuita, danos morais.
Edit this page on GitHub