+ /**
+ * Returns the executable name of the application node
+ * @return
+ */
+ const std::string& GetExecutableName() const;
+ /**
+ * Returns the main source file of the application node. That is, the file that contains the main method.
+ * @return File reference to main file.
+ */
+ modelCDMFile* GetMainFile() const;
+
+ /**
+ * Sets the executable name for the application.
+ * @param fileName Name of the application executable.
+ * @param result Result message.
+ * @return True if the operation was successful.
+ */
+ bool SetExecutableName(const std::string& fileName, std::string*& result);
+
+ /**
+ * Creates a folder in the application folder node. This takes effect in the system as well as in the project model.
+ * @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 application. Removes folders and files deleted since the last refresh. Also, adds folders and files created since the las refresh.
+ * @param result Result message.
+ * @return True if the operation was successful.
+ */
+ virtual const bool Refresh(std::string*& result);
+
+ /**
+ * Checks the CMakeLists file and the application structure to identify registration errors before compiling the project.
+ * @param properties Properties found in the structure.
+ */
+ void CheckStructure(std::map<std::string, bool>& properties);
+
+ /**
+ * Checks the application's 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<std::string, bool> Get3rdPartyLibraries();
+
+ /**
+ * Sets the 3rd party library inclusion in the application's CMakeLists file.
+ * @return if the operation was successful.
+ */
+ bool Set3rdPartyLibrary(const std::string& library_name, const bool& toInclude);