Class HashTableIndex
java.lang.Object
AEDs3.DataBase.Index.HashTableIndex
- All Implemented Interfaces:
ForwardIndex
Implementação de um índice de tabela hash extensível.
Gerencia a inserção, busca e remoção de registros em uma estrutura de hash.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classClasse interna que representa um cesto (bucket) na tabela hash.private classClasse interna que representa o diretório da tabela hash. -
Field Summary
FieldsModifier and TypeFieldDescription(package private) RandomAccessFileArquivo de acesso aleatório para os cestos.(package private) StringCaminho para o arquivo de cestos.(package private) intNúmero máximo de elementos por cesto.(package private) HashTableIndex.DirectoryDiretório da tabela hash.(package private) RandomAccessFileArquivo de acesso aleatório para o diretório.(package private) StringCaminho para o arquivo de diretório.(package private) StringCaminho para o arquivo de metadados. -
Constructor Summary
ConstructorsConstructorDescriptionHashTableIndex(int bucketCapacity, String nc, String nd, String nm) Construtor que inicializa um novo índice de tabela hash.HashTableIndex(String nc, String nd, String nm) Construtor que inicializa o índice de tabela hash a partir de arquivos existentes. -
Method Summary
Modifier and TypeMethodDescriptionvoiddelete(int id) Remove um registro do índice de tabela hash.voiddestruct()Destrói o índice de tabela hash, fechando arquivos e removendo-os do sistema.intRetorna a capacidade máxima de elementos por cesto.voidinsert(int id, long pos) Insere um novo registro no índice de tabela hash.private voidinsert(ForwardIndexRegister elem) Método auxiliar que insere um registro no índice de tabela hash.String[]Retorna os caminhos dos arquivos associados ao índice de tabela hash.longsearch(int id) Busca um registro no índice de tabela hash.
-
Field Details
-
dirFilePath
String dirFilePathCaminho para o arquivo de diretório. -
bucketFilePath
String bucketFilePathCaminho para o arquivo de cestos. -
metaFilePath
String metaFilePathCaminho para o arquivo de metadados. -
dirFile
RandomAccessFile dirFileArquivo de acesso aleatório para o diretório. -
bucketFile
RandomAccessFile bucketFileArquivo de acesso aleatório para os cestos. -
bucketNumElements
int bucketNumElementsNúmero máximo de elementos por cesto. -
directory
HashTableIndex.Directory directoryDiretório da tabela hash.
-
-
Constructor Details
-
HashTableIndex
Construtor que inicializa o índice de tabela hash a partir de arquivos existentes.- Parameters:
nc- Caminho para o arquivo de cestos.nd- Caminho para o arquivo de diretório.nm- Caminho para o arquivo de metadados.- Throws:
IOException- Se ocorrer um erro de I/O.
-
HashTableIndex
Construtor que inicializa um novo índice de tabela hash.- Parameters:
bucketCapacity- Número máximo de elementos por cesto.nc- Caminho para o arquivo de cestos.nd- Caminho para o arquivo de diretório.nm- Caminho para o arquivo de metadados.- Throws:
IOException- Se ocorrer um erro de I/O.
-
-
Method Details
-
destruct
Destrói o índice de tabela hash, fechando arquivos e removendo-os do sistema.- Specified by:
destructin interfaceForwardIndex- Throws:
IOException- Se ocorrer um erro de I/O.
-
insert
Insere um novo registro no índice de tabela hash.- Specified by:
insertin interfaceForwardIndex- Parameters:
id- Identificador do registro.pos- Posição do registro no arquivo de dados.- Throws:
IOException- Se ocorrer um erro de I/O.
-
insert
Método auxiliar que insere um registro no índice de tabela hash.- Parameters:
elem- Registro a ser inserido.- Throws:
IOException- Se ocorrer um erro de I/O.
-
search
Busca um registro no índice de tabela hash.- Specified by:
searchin interfaceForwardIndex- Parameters:
id- Identificador do registro a ser buscado.- Returns:
- A posição do registro no arquivo de dados, ou -1 se não encontrado.
- Throws:
IOException- Se ocorrer um erro de I/O.
-
delete
Remove um registro do índice de tabela hash.- Specified by:
deletein interfaceForwardIndex- Parameters:
id- Identificador do registro a ser removido.- Throws:
IOException- Se ocorrer um erro de I/O.
-
getBucketCapacity
public int getBucketCapacity()Retorna a capacidade máxima de elementos por cesto.- Returns:
- Capacidade máxima de elementos por cesto.
-
listFilePaths
Retorna os caminhos dos arquivos associados ao índice de tabela hash.- Specified by:
listFilePathsin interfaceForwardIndex- Returns:
- Array de strings contendo os caminhos dos arquivos de diretório, cestos e metadados.
-