Histórico da Página
...
Aviso | ||
---|---|---|
| ||
Esta página não deve tem como objetivo ser lida como um guia de como programar com Rhino ou mesmo como um "aprenda a programar", mas sim para listar algumas características interessantes que serão referenciadas em outros pontos da documentação. Se você ainda não tem experiência com o desenvolvimento no Rhino, recomendamos que deixe essa documentação para o futuro. |
Em vários momentos da personalização lidamos com o que chamamos de mapa. Mapa nada mais é que um conjunto de itens com chave/valor.
No Rhino, existem duas formas de trabalhar com mapas, de forma nativa ou na forma do java. A forma nativa, nada mais é que o um objeto simples do javascript, já na forma Java é utilizando as classes Java que implementam a interface O java possui a classe java.util.Map para trabalhar com itens "chave/valor". É muito usado para armazenar dados quando a estrutura dos dados não é bem definida ou não tão previsível.
Um exemplo são os dados de um formulário. Como o formulário é criado pelos desenvolvedores e podem conter uma variedade imprevisível de nomes, internamente trabalhamos sempre com Map para lidar com essas informações.
como o java.util.HashMap.
Recomendamos usar sempre da forma Java por ter uma maior compatibilidade com os nossos métodos, exceto quando a documentação permitir o uso da forma nativa, o que deixara o código mais legível.
Exemplo de um Mapa Nativo
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
Map<String, Object>var dados = new HashMap<>(); dados.put({ "nome",: "João"); dados.put(, "idade",: 42); dados.put(, "salario",: 2500.98); //O salário de João (42 anos) é de R$ 2500.98 System.out.println} console.log("O salário de " + dados.get("nome") + " (" + dados.get("idade") + " anos) é de R$ " + dados.get("salario")); |
Criando um HashMap na personalização
Você pode usar o HashMap do Java, desde que referenciando corretamente a classe (inserir link aqui)
...
;
//imprime: O salário de João (42 anos) é de R$ 2500.98 |
Exemplo de um Mapa Java
Bloco de código | |||||||
---|---|---|---|---|---|---|---|
| |||||||
var dados = new java.util.HashMap();
dados.put("nome", "João");
dados.put("idade", 42);
dados.put("salario", 2500.98);
hAPI.startProcess(..., dados, ...); |
Lidando com um Map retornado
Alguns dos nossos métodos retornam também Map para a sua personalização, e você pode lidar com eles da forma tradicional, usando o método get:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
var dados = funcaoQueRetornaUmMap(); log.infoconsole.log("O salário de " + dados.get("nome") + " (" + dados.get("idade") + " anos) é de R$ " + dados.get("salario")); |
Porém, quando são os nossos métodos internos que retornam um Map, o motor faz uma transformação neste objeto que permite acessá-lo mais como objeto javascript convencional:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
var dados = funcaoQueRetornaUmMap(); log.info(" //imprime: O salário de " + dados.nome + " (" + dados.idade + " João (42 anos) é de R$ " + dados.salario); |
Porém, essa segunda forma só é válida para itens foram retornados pelos métodos internos nossos.
Se você criar o seu próprio HashMap deve usar apenas com os métodos "get":
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
var dados = new java.util.HashMap(); dados.put("nome", "João"); log.info(dados.get("nome")); // imprime João log.info(dados.nome); // imprime undefined 2500.98 |