Salome HOME
Copyright update 2022
[modules/shaper.git] / src / Config / Config_DataModelReader.h
index d17f54eaeef01d6dc12b30890fc57c9af9e38015..c0c8559863a1dd04d0132a6c4d7c5c5b49a30a54 100644 (file)
@@ -1,11 +1,21 @@
-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-/*
- * Config_DataModelReader.h
- *
- *  Created on: Jul 21, 2015
- *      Author: vsv
- */
+// Copyright (C) 2014-2022  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 
 #ifndef CONFIG_DATAMODELREADER_H_
 #define CONFIG_DATAMODELREADER_H_
@@ -27,7 +37,6 @@ class Config_DataModelReader : public Config_XMLReader
  public:
   /*!
    * Constructor
-   * \param theXmlFile - full path to the xml file which will be processed by the reader
    */
   CONFIG_EXPORT Config_DataModelReader();
   CONFIG_EXPORT virtual ~Config_DataModelReader();
@@ -36,8 +45,8 @@ class Config_DataModelReader : public Config_XMLReader
   /// Returns name of type of tree items in root
   CONFIG_EXPORT std::string rootType() const { return myRootTypes; }
 
-  /// Returns number of folders under root 
-  CONFIG_EXPORT int rootFoldersNumber() const { return myRootFolderNames.size(); }
+  /// Returns number of folders under root
+  CONFIG_EXPORT size_t rootFoldersNumber() const { return myRootFolderNames.size(); }
 
   /// Returns name of the folder by its Id
   /// \param theId id of the folder
@@ -59,14 +68,17 @@ class Config_DataModelReader : public Config_XMLReader
   /// \param theId id of the folder
   CONFIG_EXPORT bool rootShowEmpty(int theId) const { return myRootFolderShowEmpty[theId]; }
 
+  /// Returns list of features attached to folder with name theFolderName in sub-document
+  /// \param theFolderName a name of the folder
+  CONFIG_EXPORT std::string rootFolderFeatures(const std::string& theFolderName) const;
 
 
   // SUB folders propertiues ********************
   /// Returns name of type of tree items in sub document
   CONFIG_EXPORT std::string subType() const { return mySubTypes; }
 
-  /// Returns number of folders under sub document 
-  CONFIG_EXPORT int subFoldersNumber() const { return mySubFolderNames.size(); }
+  /// Returns number of folders under sub document
+  CONFIG_EXPORT size_t subFoldersNumber() const { return mySubFolderNames.size(); }
 
   /// Returns name of the folder by its Id
   /// \param theId id of the folder
@@ -88,6 +100,11 @@ class Config_DataModelReader : public Config_XMLReader
   /// \param theType type of objects in folder
   CONFIG_EXPORT int subFolderId(std::string theType) const;
 
+  /// Returns list of features attached to folder with name theFolderName in sub-document
+  /// \param theFolderName a name of the folder
+  CONFIG_EXPORT std::string subFolderFeatures(const std::string& theFolderName) const;
+
+
   /// Returns true if the sub-document data tree has to be attached to Part Result node
   /// Otherwise it has to be connected to Part feature node
   CONFIG_EXPORT bool isAttachToResult() const { return myIsResultLink; }
@@ -103,6 +120,7 @@ private:
   std::vector<std::string> myRootFolderNames;
   std::vector<std::string> myRootFolderTypes;
   std::vector<std::string> myRootFolderIcons;
+  std::vector<std::string> myRootFeaturesList;
   std::vector<bool> myRootFolderShowEmpty;
 
   std::string myRootTypes;
@@ -111,6 +129,7 @@ private:
   std::vector<std::string> mySubFolderNames;
   std::vector<std::string> mySubFolderTypes;
   std::vector<std::string> mySubFolderIcons;
+  std::vector<std::string> mySubFeaturesList;
   std::vector<bool> mySubFolderShowEmpty;
 
   bool myIsResultLink;
@@ -118,4 +137,4 @@ private:
 };
 
 
-#endif
\ No newline at end of file
+#endif