#include "modelCDMFolder.h"
+/**
+ * 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();
+ /**
+ * 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);
+ /**
+ * 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<std::string, bool>& properties);
private:
+ /**
+ * 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<modelCDMFolder*> folders;
};