Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Aviso
iconfalse

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
languagejavajs
linenumberstrue
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
languagejs
titleLidando como Map
java
linenumberstrue
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
languagejs
titleLidando como Map
linenumberstrue
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
languagejs
titleLidando como Json
linenumberstrue
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
languagejs
titleLidando como Map
linenumberstrue
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