Class CommandLineInterface
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classComando principal para exibir informações sobre o programa e os comandos disponíveis.(package private) static classComando para fechar o arquivo do banco de dados aberto.(package private) static classComando para comprimir o arquivo TrackDB aberto.(package private) static classComando responsável por criar uma nova faixa de música no banco de dados.(package private) static classComando para descomprimir um arquivo TrackDB.(package private) static classComando para descriptografar (e, se necessário, descomprimir) um arquivo especificado;(package private) static classComando responsável por deletar uma faixa de música no banco de dados a partir do seu ID.(package private) static classComando para criptografar (e opcionalmente comprimir) o arquivo TrackDB aberto.(package private) static classClasse que implementa um iterador para completar nomes de arquivos.(package private) static classComando responsável por importar faixas de música a partir de um arquivo CSV.(package private) static classComando responsável por gerenciar o índice do banco de dados.(package private) static classComando para exibir informações sobre o arquivo de banco de dados aberto.(package private) static classComando responsável por exibir os atalhos de teclado disponíveis no programa.(package private) static classComando responsável por gerar um par de chaves pública e privada para RSA.private static classClasse modificada para completar comandos usando Picocli.(package private) static classComando para abrir um banco de dados de faixas TrackDB.(package private) static classComando responsável por tocar uma faixa de música no Spotify.(package private) static classComando responsável por ler faixas de música no banco de dados, seja por ID ou por campo específico.(package private) static classComando responsável por ordenar o banco de dados utilizando o algoritmo de ordenação externa Balanced Merge Sort (intercalação balanceada).(package private) static classComando responsável por atualizar uma faixa de música existente no banco de dados.(package private) static classComando para exibir a ajuda do programa. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.jline.terminal.TerminalTerminal utilizado para interação com o usuário.(package private) booleanIndica se o banner de boas-vindas já foi exibido. -
Constructor Summary
ConstructorsConstructorDescriptionCommandLineInterface(String[] args) Classe responsável pela configuração e execução da interface de linha de comando (CLI) para o banco de dados de faixas musicais. -
Method Summary
Modifier and TypeMethodDescriptionvoidExibe um banner de boas-vindas no início do programa.
-
Field Details
-
terminal
private org.jline.terminal.Terminal terminalTerminal utilizado para interação com o usuário. -
welcomeBannerShown
boolean welcomeBannerShownIndica se o banner de boas-vindas já foi exibido.
-
-
Constructor Details
-
CommandLineInterface
Classe responsável pela configuração e execução da interface de linha de comando (CLI) para o banco de dados de faixas musicais.Este construtor inicializa o sistema de interface de linha de comando, configurando todos os componentes necessários, como o terminal, comandos do Picocli, sugestões de autocompletar, manipulação de teclas e outros recursos. O método `showWelcomeBanner` é utilizado para exibir um banner de boas-vindas personalizado na inicialização.
O fluxo de execução continua em um loop, aguardando o input do usuário, executando os comandos inseridos e exibindo informações sobre o progresso ou erros durante a execução.
O sistema acompanha recursos de autocompletar, sugestões de comandos e exibição de mensagens detalhadas durante a execução.
- Parameters:
args- Argumentos de linha de comando passados para o programa.- See Also:
-
-
Method Details
-
showWelcomeBanner
Exibe um banner de boas-vindas no início do programa.Este método monta e exibe um banner estilizado em duas partes: uma parte à esquerda com uma arte em ANSI e uma parte à direita com a descrição do programa, incluindo o nome do banco de dados e os autores do projeto.
A arte ANSI e as informações de descrição são coloridas para proporcionar uma apresentação visual atraente no terminal.
- Throws:
IOException- Se ocorrer um erro ao ler o arquivo de arte ANSI.
-