Salome HOME
New CMake build procedure.
[modules/kernel.git] / src / SALOMEDSClient / SALOMEDSClient_IParameters.hxx
1 // Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 #ifndef SALOMEDSClient_IParameters_H
24 #define SALOMEDSClient_IParameters_H
25
26 #include <string>
27 #include <vector>
28 #include <map>
29
30 #include "SALOMEDSClient_definitions.hxx"
31 #include "SALOMEDSClient_AttributeParameter.hxx"
32
33 /*! 
34   Class which an interface to store the parameters of the objects
35 */
36 class SALOMEDSClient_IParameters
37 {
38 public:
39   
40    virtual ~SALOMEDSClient_IParameters() {}
41
42   /*!
43     Appends a string value to a named list. 
44     Returns a number of the added value.
45     Note: the name of the list MUST be unique
46    */
47   virtual int append(const std::string& listName, const std::string& value) = 0; 
48
49   /*!
50     Returns a number elements in the list
51    */
52   virtual int nbValues(const std::string& listName) = 0;
53
54   /*!
55     Returns a list of values in the list
56    */
57   virtual std::vector<std::string> getValues(const std::string& listName) = 0;
58
59   /*!
60     Returns a value with given %index, where %index is in range [0:nbValues-1]
61    */
62   virtual std::string getValue(const std::string& listName, int index) = 0;
63
64   /*!
65     Returns a list all entries lists
66    */
67   virtual std::vector<std::string> getLists() = 0;
68
69   /*!
70     Sets a new named parameter value for the given entry
71    */
72   virtual void setParameter(const std::string& entry, const std::string& parameterName, const std::string& value) = 0;
73
74   /*!
75     Gets a named parameter value for the given entry
76    */
77   virtual std::string getParameter(const std::string& entry, const std::string& parameterName) = 0;
78
79   /*!
80     Sets an id parameter value for the given entry.
81    */
82   virtual void setIdParameter(const std::string& entry, const std::string& value) = 0;
83
84   /*!
85     Gets an id parameter value for the given entry
86    */
87   virtual std::string getIdParameter(const std::string& entry) = 0;
88
89   /*!
90     Returns all parameter names of the given entry
91    */
92   virtual std::vector<std::string> getAllParameterNames(const std::string& entry) = 0;
93
94   /*!
95     Returns all parameter  values of the given entry
96    */
97   virtual std::vector<std::string> getAllParameterValues(const std::string& entry) = 0;
98
99   /*!
100     Returns a number of parameters of the given entry
101    */
102   virtual int getNbParameters(const std::string& entry) = 0;
103
104   /*!
105     Returns a list all entries 
106    */
107   virtual std::vector<std::string> getEntries() = 0;
108
109   /*!
110     Sets a global named property value
111    */
112   virtual void setProperty(const std::string& name, const std::string& value) = 0;
113
114   /*!
115     Gets a value of global named property
116    */
117   virtual std::string getProperty(const std::string& name) = 0;
118
119   /*!
120     Returns a list all properties 
121    */
122   virtual std::vector<std::string> getProperties() = 0;
123
124   /*!
125     Breaks a value string in two parts which is divided by %separator.
126     If fromEnd is True the search of separator starts from the end of the string
127    */
128   virtual std::vector<std::string> parseValue(const std::string& value, const char separator, bool fromEnd = true) = 0;
129
130
131   /*!
132     Returns encoded entry that is a relative entry for the component
133    */
134   virtual std::string encodeEntry(const std::string& entry, const std::string& compName) = 0;
135
136   /*!
137     Returns decoded entry that is an absolute entry
138    */
139   virtual std::string decodeEntry(const std::string& entry) = 0;
140
141   /*!
142     Enables/Disables the dumping visual parameters, static implementation is supposed
143    */
144   virtual void setDumpPython(_PTR(Study) study, const std::string& theID = "") = 0;
145
146   /*!
147     Returns whether there is the dumping visual parameters, static implementation is supposed
148    */
149   virtual bool isDumpPython(_PTR(Study) study, const std::string& theID = "") = 0;  
150
151   /*!
152     Returns a default name of the component where the visula parameters are stored.
153     Static implementation is supposed
154   */
155   virtual std::string getDefaultVisualComponent() = 0;
156
157 };
158
159
160 #endif