Class HashTableIndex.Directory
java.lang.Object
AEDs3.DataBase.Index.HashTableIndex.Directory
- Enclosing class:
HashTableIndex
Classe interna que representa o diretório da tabela hash.
Gerencia a profundidade global e os endereços dos cestos.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) long[]Endereços dos cestos no diretório.(package private) byteProfundidade global do diretório. -
Constructor Summary
ConstructorsConstructorDescriptionConstrutor do diretório, inicializa com profundidade global zero. -
Method Summary
Modifier and TypeMethodDescriptionprotected longaddress(int pos) Retorna o endereço de um cesto no diretório.protected voidDuplica o diretório, aumentando a profundidade global.voidfromByteArray(byte[] buf) Inicializa o diretório a partir de um array de bytes.protected inthash(int id) Calcula o hash para determinar o cesto de um elemento.protected intlocalHash(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.voidupdateAddresses(int pos, long newAddress) Atualiza o endereço de um cesto no diretório.
-
Field Details
-
globalDepth
byte globalDepthProfundidade global do diretório. -
addresses
long[] addressesEndereç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
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
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.
-