Class HashTableIndex.Directory

java.lang.Object
AEDs3.DataBase.Index.HashTableIndex.Directory
Enclosing class:
HashTableIndex

private class HashTableIndex.Directory extends Object
Classe interna que representa o diretório da tabela hash. Gerencia a profundidade global e os endereços dos cestos.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) long[]
    Endereços dos cestos no diretório.
    (package private) byte
    Profundidade global do diretório.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Construtor do diretório, inicializa com profundidade global zero.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected long
    address(int pos)
    Retorna o endereço de um cesto no diretório.
    protected void
    Duplica o diretório, aumentando a profundidade global.
    void
    fromByteArray(byte[] buf)
    Inicializa o diretório a partir de um array de bytes.
    protected int
    hash(int id)
    Calcula o hash para determinar o cesto de um elemento.
    protected int
    localHash(int id, int localDepth)
    Calcula o hash local para atualização de endereço ao duplicar o diretório.
    byte[]
    Converte o diretório para um array de bytes.
    void
    updateAddresses(int pos, long newAddress)
    Atualiza o endereço de um cesto no diretório.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • globalDepth

      byte globalDepth
      Profundidade global do diretório.
    • addresses

      long[] addresses
      Endereços dos cestos no diretório.
  • Constructor Details

    • Directory

      public Directory()
      Construtor do diretório, inicializa com profundidade global zero.
  • Method Details

    • updateAddresses

      public void updateAddresses(int pos, long newAddress)
      Atualiza o endereço de um cesto no diretório.
      Parameters:
      pos - Posição do cesto no diretório.
      newAddress - Novo endereço do cesto.
    • toByteArray

      public byte[] toByteArray() throws IOException
      Converte o diretório para um array de bytes.
      Returns:
      Array de bytes representando o diretório.
      Throws:
      IOException - Se ocorrer um erro de I/O.
    • fromByteArray

      public void fromByteArray(byte[] buf) throws IOException
      Inicializa o diretório a partir de um array de bytes.
      Parameters:
      buf - Array de bytes representando o diretório.
      Throws:
      IOException - Se ocorrer um erro de I/O.
    • address

      protected long address(int pos)
      Retorna o endereço de um cesto no diretório.
      Parameters:
      pos - Posição do cesto no diretório.
      Returns:
      Endereço do cesto ou -1 se a posição for inválida.
    • duplicate

      protected void duplicate()
      Duplica o diretório, aumentando a profundidade global.
    • hash

      protected int hash(int id)
      Calcula o hash para determinar o cesto de um elemento.
      Parameters:
      id - Identificador do elemento.
      Returns:
      Hash calculado.
    • localHash

      protected int localHash(int id, int localDepth)
      Calcula o hash local para atualização de endereço ao duplicar o diretório.
      Parameters:
      id - Identificador do elemento.
      localDepth - Profundidade local do cesto.
      Returns:
      Hash local calculado.