+/*! \brief Mark this Study as being locked by the given locker.
+
+ The lock status can be checked by method IsStudyLocked
+ \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that locks the study.
+*/
+ void SetStudyLock(in string theLockerID);
+
+/*! \brief Indicate if the Study is locked
+
+ Returns True if the Study was marked locked.
+*/
+ boolean IsStudyLocked();
+
+/*! \brief Mark this Study as being unlocked by the given locker.
+
+ The lock status can be checked by method IsStudyLocked
+ \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that unlocks the study.
+*/
+ void UnLockStudy(in string theLockerID);
+
+/*! \brief Get the list of IDs of the Study's lockers.
+*/
+ ListOfStrings GetLockerID();
+
+/*! \brief Create real variable with Name theVarName and value theValue
+
+ (or set if variable value into theValue already exists)
+ \param theVarName is a name of the variable
+ \param theVarName is a value of the variable.
+*/
+ void SetReal( in string theVarName, in double theValue );
+
+/*! \brief Create integer variable with Name theVarName and value theValue
+
+ (or set if variable value into theValue already exists)
+ \param theVarName is a name of the variable
+ \param theVarName is a value of the variable.
+*/
+ void SetInteger( in string theVarName, in long theValue );
+/*! \brief Create boolean variable with Name theVarName and value theValue
+
+ (or set if variable value into theValue already exists)
+ \param theVarName is a name of the variable
+ \param theVarName is a value of the variable.
+*/
+ void SetBoolean( in string theVarName, in boolean theValue );
+
+/*! \brief Create string variable with Name theVarName and value theValue
+
+ (or set if variable value into theValue already exists)
+ \param theVarName is a name of the variable
+ \param theVarName is a value of the variable.
+*/
+ void SetString( in string theVarName, in string theValue );
+
+/*! \brief Set current value as double for string variable
+*/
+ void SetStringAsDouble( in string theVarName, in double theValue );
+
+/*! \brief Get value of a real variable
+
+ \param theVarName is a name of the variable.
+*/
+ double GetReal( in string theVarName );
+
+/*! \brief Get value of an integer variable
+
+ \param theVarName is a name of the variable.
+*/
+ long GetInteger( in string theVarName );
+
+/*! \brief Get value of a boolean variable
+
+ \param theVarName is a name of the variable.
+*/
+ boolean GetBoolean( in string theVarName );
+
+/*! \brief Get value of a string variable
+
+ \param theVarName is a name of the variable.
+*/
+ string GetString( in string theVarName );
+
+
+/*! \brief Indicate if a variable is real
+
+ Return true if variable is real otherwise return false.
+ \param theVarName is a name of the variable.
+*/
+ boolean IsReal( in string theVarName );
+
+/*! \brief Indicate if a variable is integer
+
+ Return true if variable is integer otherwise return false.
+ \param theVarName is a name of the variable.
+*/
+ boolean IsInteger( in string theVarName );
+
+/*! \brief Indicate if a variable is boolean
+
+ Return true if variable is boolean otherwise return false.
+ \param theVarName is a name of the variable.
+*/
+ boolean IsBoolean( in string theVarName );
+
+/*! \brief Indicate if a variable is string
+
+ Return true if variable is string otherwise return false.
+ \param theVarName is a name of the variable.
+*/
+ boolean IsString( in string theVarName );
+
+/*! \brief Indicate if a variable exists in the study
+
+ Return true if variable exists in the study,
+ otherwise return false.
+ \param theVarName is a name of the variable.
+*/
+ boolean IsVariable( in string theVarName );
+
+/*! \brief Get names of all variables from the study.
+*/
+ ListOfStrings GetVariableNames();
+
+/*! \brief Remove a variable
+
+ Remove variable with the specified name from the study with substitution of its value.
+
+ \param theVarName Name of the variable.
+ \return Status of operation.
+*/
+ boolean RemoveVariable( in string theVarName );
+
+/*! \brief Rename a variable
+
+ Rename variable with the specified name within the study.
+
+ \param theVarName Name of the variable.
+ \param theNewVarName New name for the variable.
+ \return Status of operation.
+*/
+ boolean RenameVariable( in string theVarName, in string theNewVarName );
+
+/*! \brief Indicate whether variable is used
+
+ Check that variable is used in the study.
+
+ \param theVarName Name of the variable.
+ \return Variable usage.
+*/
+ boolean IsVariableUsed( in string theVarName );
+
+/*! \brief Parse variables used for object creation
+
+ \param string with variables, separated by special symbol.
+ \return Variables list.
+*/
+ ListOfListOfStrings ParseVariables( in string theVars );
+
+/*!
+ Attach an observer to the Study
+
+ \param theObserver
+*/
+ void attach(in SALOMEDS::Observer theObserver, in boolean modify);