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:

    Nível Básico
  1. O Primeiro Contato
  2. Criação de Estruturas
  3. Recuperação dos Dados
  4. Interação com Coleções
  5. Reestruturação do Mapa

  6. Nível Intermediário
  7. Trabalhando com Stream
  8. Trabalhando com XML
  9. Trabalhando com XML Grande
  10. Acessando Banco de Dados
  11. Acessando Preferências

  12. Nível Avançado
  13. Preenchimento de Template (inglês)
  14. Interoperabilidade com .NET (inglês)
  15. Runtime schema validation (inglês)

(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ências

A 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.

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.