Salome HOME
Merge from V5_1_main 14/05/2010
[modules/kernel.git] / src / SALOMEDSClient / SALOMEDSClient_IParameters.hxx
1 //  Copyright (C) 2007-2010  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     Returns all parameter names of the given entry
81    */
82   virtual std::vector<std::string> getAllParameterNames(const std::string& entry) = 0;
83
84   /*!
85     Returns all parameter  values of the given entry
86    */
87   virtual std::vector<std::string> getAllParameterValues(const std::string& entry) = 0;
88
89   /*!
90     Returns a number of parameters of the given entry
91    */
92   virtual int getNbParameters(const std::string& entry) = 0;
93
94   /*!
95     Returns a list all entries 
96    */
97   virtual std::vector<std::string> getEntries() = 0;
98
99   /*!
100     Sets a global named property value
101    */
102   virtual void setProperty(const std::string& name, const std::string& value) = 0;
103
104   /*!
105     Gets a value of global named property
106    */
107   virtual std::string getProperty(const std::string& name) = 0;
108
109   /*!
110     Returns a list all properties 
111    */
112   virtual std::vector<std::string> getProperties() = 0;
113
114   /*!
115     Breaks a value string in two parts which is divided by %separator.
116     If fromEnd is True the search of separator starts from the end of the string
117    */
118   virtual std::vector<std::string> parseValue(const std::string& value, const char separator, bool fromEnd = true) = 0;
119
120
121   /*!
122     Returns encoded entry that is a relative entry for the component
123    */
124   virtual std::string encodeEntry(const std::string& entry, const std::string& compName) = 0;
125
126   /*!
127     Returns decoded entry that is an absolute entry
128    */
129   virtual std::string decodeEntry(const std::string& entry) = 0;
130
131   /*!
132     Enables/Disables the dumping visual parameters, static implementation is supposed
133    */
134   virtual void setDumpPython(_PTR(Study) study, const std::string& theID = "") = 0;
135
136   /*!
137     Returns whether there is the dumping visual parameters, static implementation is supposed
138    */
139   virtual bool isDumpPython(_PTR(Study) study, const std::string& theID = "") = 0;  
140
141   /*!
142     Returns a default name of the component where the visula parameters are stored.
143     Static implementation is supposed
144   */
145   virtual std::string getDefaultVisualComponent() = 0;
146
147 };
148
149
150 #endif