DotNameLib
Loading...
Searching...
No Matches
PathResolver.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace dotnamecpp::utils {
6
7 class PathResolver final : public IPathResolver {
8 public:
9 PathResolver() = default;
10 PathResolver(const PathResolver &) = delete;
14 ~PathResolver() override = default;
15
16 [[nodiscard]]
18 getAbsolutePath(const std::filesystem::path &path) const override;
19
20 [[nodiscard]]
22 getCanonicalPath(const std::filesystem::path &path) const override;
23
24 [[nodiscard]]
26 getRelativePath(const std::filesystem::path &target,
27 const std::filesystem::path &base) const override;
28
29 [[nodiscard]]
30 bool isAbsolute(const std::filesystem::path &path) const override;
31
32 [[nodiscard]]
33 bool isRelative(const std::filesystem::path &path) const override;
34
35 [[nodiscard]]
36 std::filesystem::path getParent(const std::filesystem::path &path) const override;
37
38 [[nodiscard]]
39 std::string getFilename(const std::filesystem::path &path) const override;
40
41 [[nodiscard]]
42 std::string getExtension(const std::filesystem::path &path) const override;
43
44 [[nodiscard]]
45 std::string getStem(const std::filesystem::path &path) const override;
46
47 [[nodiscard]]
48 std::filesystem::path join(const std::vector<std::string> &parts) const override;
49 };
50
51} // namespace dotnamecpp::utils
Interface for path resolution and manipulation.
Definition IPathResolver.hpp:15
bool isRelative(const std::filesystem::path &path) const override
Check if path is relative.
Definition PathResolver.cpp:84
std::filesystem::path getParent(const std::filesystem::path &path) const override
Get the Parent object.
Definition PathResolver.cpp:88
std::filesystem::path join(const std::vector< std::string > &parts) const override
Join multiple path components.
Definition PathResolver.cpp:104
std::string getExtension(const std::filesystem::path &path) const override
Get the Extension object.
Definition PathResolver.cpp:96
PathResolver(const PathResolver &)=delete
PathResolver(PathResolver &&)=delete
bool isAbsolute(const std::filesystem::path &path) const override
Check if path is absolute.
Definition PathResolver.cpp:80
Result< std::filesystem::path, FileError > getCanonicalPath(const std::filesystem::path &path) const override
Get the Canonical Path object.
Definition PathResolver.cpp:32
Result< std::filesystem::path, FileError > getRelativePath(const std::filesystem::path &target, const std::filesystem::path &base) const override
Get the Relative Path object.
Definition PathResolver.cpp:56
Result< std::filesystem::path, FileError > getAbsolutePath(const std::filesystem::path &path) const override
Get the Absolute Path object.
Definition PathResolver.cpp:8
std::string getFilename(const std::filesystem::path &path) const override
Get the Filename object.
Definition PathResolver.cpp:92
~PathResolver() override=default
std::string getStem(const std::filesystem::path &path) const override
Get the Stem object.
Definition PathResolver.cpp:100
PathResolver & operator=(const PathResolver &)=delete
PathResolver & operator=(PathResolver &&)=delete
Definition UtilsError.hpp:93
Definition DirectoryManager.cpp:5