Tutorial do HierarchicalMap - Nível Intermediário
HierarchicalMap é uma interface. Assim, qualquer um pode implementá-la. Este tutorial é baseado em BasicHierarchicalmap, uma implementação referência em Java da interfae HierarchicalMap.
Este tutorial abrange os seguintes assuntos:
(O recurso de Javascript precisa estar habilitado, no seu navegador, para permitir a visualização dos códigos utilizados nos exemplos deste tutorial)
Nível Intermediário
10. Acessando PreferênciasA classe org.dhmp.io.MapPreferences é bem simples e possui métodos para interagir com java.util.prefs.Preferences:
Basicamente, a classe armazena o conteúdo de um HierarchicalMap para Preferences e vice-versa.
Infelizmente, devido à restrição da Preferences, cada folha da HierarchicalMap é armazenada convertendo para o formato String, pois caso contrário, não há como recuperar os tipos dos dados corretamente. Assim, dependendo do tipo de objeto, não poderá ser recuperado, a menos que sejam desmembrados para tipos mais primitivos ou serializados para formato texto (ex. Base64). O método replace() da classe org.dhmp.util.xml.Schema pode ser utilizado para converter entre String e outras formas de Objetos primitivos (Boolean, Integer etc).
O código abaixo mostra a utilização desta classe.
HierarchicalMap hmap = new BasicHierarchicalMap(); hmap.add("test/string1", "value1"); hmap.add("test/String2", "value2"); hmap.add("test/integer1", Integer.valueOf(101)); hmap.add("test/object1", this); hmap.add("test/node1/string1", "value1"); hmap.add("test/node1/string2", "value2"); Preferences prefs = Preferences .userNodeForPackage(this.getClass()); try { //remover o nó caso já tenha sido criado prefs.node("test").removeNode(); } catch (BackingStoreException e) { } //salvar o mapa MapPreferences.put(prefs, hmap); //recuperar o mapa HierarchicalMap result = MapPreferences.getAll(prefs); System.out.println(result.toString() .equals(hmap.toString()));
Note que apesar da comparação ser igual, os nós das duas HierarchicalMap são diferentes. O nó "test/integer1" é da classe Integer no mapa original, enquanto no mapa recuperado é da classe String.
Continua para Nível Avançado - Preenchimento de Template no momento a página ainda não foi traduzido.