Looplex Knowledge Base
Set
O tube set é aplicado apenas sobre vetores. O set adiciona um elemento ao default em uma posição específica do vetor.
O tube set se diferencia to tube add, que também adiciona elementos a vetores, pois com o uso do set, a opção vai pra tela e pode ser editada pelo usuário.
Formato:
|vect|.set(index, valor)
Parâmetros:
- vect: Vetor ao qual será adicionado o elemento
- index: Índice do vetor em que será inserido o novo elemento. É um número inteiro entre 0 e n - 1. Lembre-se que a indexação começa a contar a partir do 0. O elemento de índice 0 é o primeiro elemento do vetor, 1 é o segundo e assim por diante.
- valor: Valor a ser adicionado. Pode ser primitivo, operando do tipo lista ou obejto a depender do vetor vect
Retorno:
Enquanto o vetor ao qual foram adicionados os defaults não houver sido salvo, o retorno do tube set é booleano (true) se o elemento passado como parâmetro foi adicionado com sucesso ao default.
Uma vez que o vetor tenha sido salvo, o set retorna o valor do elemento que se encontra na posição passada como parâmetro.
É importante destacar que o lawtex prioriza os inputs do usuário em detrimento dos defaults definidos no código. Isso significa que o set não funciona caso seja usado em uma variável cujo valor já tenha sido salvo pelo usuário.
Exemplos:
operations { |vect|.set(0, "Default do elemento de índice 0")}
Comportamento da plataforma:
1. Set com vetor de String. Neste exemplo, tem-se um contrato cujos itens mais recorrentes que compõem uma cláusula de declarações das partes são conhecidos previamente. Para permitir que o usuário deseja possa editar o texto dos itens a partir das sugestões pré-programadas, bem como excluir ou adicionar novos elementos ao vetor, utiliza-se o tube set:
declarations { +|declaracoesVendedora| : Vector[String] { name = "Declaração" request = "A parte vendedora declara:" } } operations { |declaracoesVendedora|.set(0, "que o imóvel encontra-se totalmente livre e desembaraçado de quaisquer outros ônus ou gravames"), |declaracoesVendedora|.set(1, "que o imóvel está livre e isento de passivos e dívidas, inclusive de natureza ambiental, administrativa e fiscal"), |declaracoesVendedora|.set(2, "que não existe sobre o imóvel qualquer processo de tombamento ou desapropriação em curso"), |declaracoesVendedora|.set(3, "que não está envolvida em ações cíveis, tributárias ou trabalhistas que ameacem a presente promessa de compra e venda do imóvel") }
Comportamento da plataforma:
2. Set com indexação dinâmica. Ao invés de definir previamente a posição em que será inserida a sugestão, é possível passar o tamanho do vetor como parâmetro de indexação (com o tube size). Dessa forma, não importa o número de elementos do vetor, o default adicionado pelo set será sempre inserido ao final do vetor.
declarations { +|declaracoesVendedora| : Vector[String] { name = "Declaração" request = "A parte vendedora declara:" } } operations { |declaracoesVendedora|.set(|declaracoesVendedora|.size(), "que o imóvel encontra-se totalmente livre e desembaraçado de quaisquer outros ônus ou gravames"), |declaracoesVendedora|.set(|declaracoesVendedora|.size(), "que o imóvel está livre e isento de passivos e dívidas, inclusive de natureza ambiental, administrativa e fiscal"), |declaracoesVendedora|.set(|declaracoesVendedora|.size(), "que não existe sobre o imóvel qualquer processo de tombamento ou desapropriação em curso"), |declaracoesVendedora|.set(|declaracoesVendedora|.size(), "que não está envolvida em ações cíveis, tributárias ou trabalhistas que ameacem a presente promessa de compra e venda do imóvel") }