X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMLibrary.h;h=bec12783c504f0c602063b53a0eabe2f5f6e71a9;hb=175a81477d0476f53162766202df7be421afe3aa;hp=4c7fdad33c8ac0de95fbe89b0de83497b7b7bb97;hpb=07de43de26544771a25b4edb25cbbf878bf32de3;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMLibrary.h b/lib/creaDevManagerLib/modelCDMLibrary.h index 4c7fdad..bec1278 100644 --- a/lib/creaDevManagerLib/modelCDMLibrary.h +++ b/lib/creaDevManagerLib/modelCDMLibrary.h @@ -37,28 +37,100 @@ #include #include +#include -#include "modelCDMIProjectTreeNode.h" +#include "modelCDMFolder.h" -class modelCDMLibrary : public modelCDMIProjectTreeNode +/** + * Class that represents a library in a Crea project. + */ +class modelCDMLibrary : public modelCDMFolder { public: + /** + * Default Constructor + */ modelCDMLibrary(); + /** + * Constructor of the Library node. + * @param parent Parent node of the library node. + * @param path Full path to the library node. + * @param name Name of the library folder node. + * @param level Project hierarchy level of the library folder node. + */ + modelCDMLibrary(modelCDMIProjectTreeNode* parent, const std::string& path, const std::string& name, const int& level = 2); + /** + * Destructor. + */ ~modelCDMLibrary(); - const std::string& GetName() const; + /** + * Retrieves the name of the Library node. The name of a library can be different than the name of the folder that contains it + * @return Name of the library node. + */ + const std::string& GetNameLibrary() const; + /** + * Renames the library with the given name. + * @param fileName New name of the library node. + * @param result Result message. + * @return True if the operation was successful. + */ + bool SetNameLibrary(const std::string& fileName, std::string*& result); + + /** + * Creates a new folder inside the library folder node. This method not only modifies the project model, but also the system. + * @param name Name of the new folder. + * @param result Result message. + * @return True if the operation was successful. + */ + modelCDMFolder* CreateFolder(const std::string& name, std::string*& result); - bool CreateFolder( - const std::string& name, - std::string*& result, - const std::string& path = "/" - ); - bool OpenCMakeListsFile(std::string*& result); + /** + * Refreshes the structure of the library folder node. Deletes files and folders deleted since last refresh, adds files and folders created since last refresh. + * @param result Result message. + * @return True if the operation was successful. + */ virtual const bool Refresh(std::string*& result); + /** + * Checks the library structure and CMakeLists file to find project structure definition problems before compiling the project. + * @param properties Project properties. + */ + void CheckStructure(std::map& properties); + + /** + * Checks the library CMakeLists file to check which third party libraries are enabled. + * @return A map with the name of the library and if it's included in the CMakeLists file. + */ + std::map Get3rdPartyLibraries(); + + /** + * Sets the 3rd party library inclusion in the CMakeLists file. + * @return if the operation was successful. + */ + bool Set3rdPartyLibrary(const std::string& library_name, const bool& toInclude); + + /** + * Checks the library CMakeLists file to check which custom libraries are enabled. + * @return A map with the name of the library and if it's included in the CMakeLists file. + */ + std::map GetCustomLibraries(); + + /** + * Sets the custom library inclusion in the CMakeLists file. + * @return if the operation was successful. + */ + bool SetCustomLibrary(const std::string& library_name, const bool& toInclude); + private: - std::string name; - std::vector libraries; + /** + * Name of the library node. The name of a library can be different than the library folder name. + */ + std::string nameLibrary; + /** + * Folder reference array of folder node inside the library node. + */ + std::vector folders; }; #endif /* MODELCDMLIBRARY_H_ */