Class CommandLineInterface

java.lang.Object
AEDs3.CommandLineInterface

public class CommandLineInterface extends Object
Classe principal de interface de linha de comando (CLI) para o gerenciamento de arquivos TrackDB. Utiliza JLine3 para manipulação de entrada do usuário e Picocli para definir os comandos da interface.
  • Field Details

    • terminal

      private org.jline.terminal.Terminal terminal
      Terminal utilizado para interação com o usuário.
    • welcomeBannerShown

      boolean welcomeBannerShown
      Indica se o banner de boas-vindas já foi exibido.
  • Constructor Details

    • CommandLineInterface

      public CommandLineInterface(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.

      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:
      • CommandLineInterface.CliCommands
      • PicocliCommands.PicocliCommandsFactory
      • PicocliCommands
      • SystemRegistry
      • Terminal
      • LineReader
      • AutosuggestionWidgets
      • TailTipWidgets
  • Method Details

    • showWelcomeBanner

      public void showWelcomeBanner() throws IOException
      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.