75 std::shared_ptr<BranchManager> branch_manager);
95 [[nodiscard]] std::string
getName()
const override;
117 [[nodiscard]] std::string
getUsage()
const override;
130 bool execute(
const std::vector<std::string>& args)
override;
151 bool listBranches()
const;
164 bool createBranch(
const std::string& branch_name)
const;
179 bool createBranchFromCommit(
const std::string& branch_name,
const std::string& commit_hash)
const;
194 bool deleteBranch(
const std::string& branch_name,
bool force =
false)
const;
209 bool renameBranch(
const std::string& old_name,
const std::string& new_name)
const;
220 bool showCurrentBranch()
const;
233 bool switchBranch(
const std::string& branch_name)
const;
246 [[nodiscard]]
static bool isValidBranchName(
const std::string& name);
259 [[nodiscard]]
bool branchExists(
const std::string& name)
const;
272 [[nodiscard]]
static bool isValidCommitHash(
const std::string& hash);
282 std::shared_ptr<ISubject> event_bus_;
291 std::shared_ptr<BranchManager> branch_manager_;
Declaration of the BranchManager class for handling version control branches.
Объявление интерфейса ICommand для всех исполняемых CLI команд.
Определяет интерфейс для компонента Subject (Издатель) шаблона Observer.
std::string getUsage() const override
Получает синтаксис использования команды.
Определения BranchCommand.cxx:37
~BranchCommand() override=default
Деструктор.
std::string getName() const override
Получает имя команды.
Определения BranchCommand.cxx:29
std::string getDescription() const override
Получает описание команды.
Определения BranchCommand.cxx:33
BranchCommand(std::shared_ptr< ISubject > event_bus, std::shared_ptr< BranchManager > branch_manager)
Конструктор для BranchCommand.
Определения BranchCommand.cxx:24
bool execute(const std::vector< std::string > &args) override
Выполняет команду branch с заданными аргументами.
Определения BranchCommand.cxx:91
void showHelp() const override
Отображает справочную информацию для команды.
Определения BranchCommand.cxx:191
Интерфейс (абстрактный базовый класс) для всех команд, выполняемых через CLI.
Определения ICommand.hxx:31
Компоненты командной строки и реализации команд.
Основные структуры данных СКВ и модель объектов.