]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
ParseVariables() method added in the Study.
authorrnv <rnv@opencascade.com>
Mon, 17 Nov 2008 15:36:04 +0000 (15:36 +0000)
committerrnv <rnv@opencascade.com>
Mon, 17 Nov 2008 15:36:04 +0000 (15:36 +0000)
idl/SALOMEDS.idl
src/SALOMEDS/SALOMEDS_Study.cxx
src/SALOMEDS/SALOMEDS_Study.hxx
src/SALOMEDS/SALOMEDS_Study_i.cxx
src/SALOMEDS/SALOMEDS_Study_i.hxx
src/SALOMEDSClient/SALOMEDSClient_Study.hxx
src/SALOMEDSImpl/SALOMEDSImpl_Study.cxx
src/SALOMEDSImpl/SALOMEDSImpl_Study.hxx

index 32eb2463e80f40632d7faabb3c18766f6eccde07..a52fbbda1eea12cdcfb37a364524e917745c67f7 100644 (file)
@@ -504,6 +504,14 @@ during each working session.
    \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.
+*/
+    ListOfStrings ParseVariables( in string theVars );
+    
   };
 
   //==========================================================================
index fce5d225ada754a701f04e707ff06e2604704c3e..044722d2f9e1734907443e3f27ae5cd93ece7f8e 100644 (file)
@@ -856,6 +856,22 @@ bool SALOMEDS_Study::IsVariableUsed(const string& theVarName)
   return aResult;
 }
 
+vector<string> SALOMEDS_Study::ParseVariables(const string& theVars)
+{
+  vector<string> aResult;
+  if (_isLocal) {
+    SALOMEDS::Locker lock;
+    aResult = _local_impl->ParseVariables(theVars);
+  }
+  else {
+    SALOMEDS::ListOfStrings_var aSeq = _corba_impl->ParseVariables(theVars.c_str());
+    int aLength = aSeq->length();
+    for (int i = 0; i < aLength; i++) 
+      aResult.push_back( string(aSeq[i].in()) );
+  }
+  return aResult;
+}
+
 std::string SALOMEDS_Study::ConvertObjectToIOR(CORBA::Object_ptr theObject) 
 {
   return _orb->object_to_string(theObject); 
index 3c885b64ba3dcc8690eca2c68c1c365fd203b297..6c5a5ba9c248a816b91ecde1f6cb44f7801cec38 100644 (file)
@@ -114,6 +114,7 @@ public:
   virtual bool RemoveVariable(const std::string& theVarName);
   virtual bool RenameVariable(const std::string& theVarName, const std::string& theNewVarName);
   virtual bool IsVariableUsed(const std::string& theVarName);
+  virtual std::vector<std::string> ParseVariables(const std::string& theVars);
 
   std::string ConvertObjectToIOR(CORBA::Object_ptr theObject);
   CORBA::Object_ptr ConvertIORToObject(const std::string& theIOR);     
index 22abc8a03ca5d7689f52070c3220d4dcaa33059f..e8e90880915ecc9346fadcd8b3c8a48da58c9645 100644 (file)
@@ -1001,6 +1001,26 @@ CORBA::Boolean SALOMEDS_Study_i::IsVariableUsed(const char* theVarName)
   return _impl->IsVariableUsed(string(theVarName));
 }
 
+
+//============================================================================
+/*! Function : ParseVariables
+ *  Purpose  : 
+ */
+//============================================================================
+SALOMEDS::ListOfStrings* SALOMEDS_Study_i::ParseVariables(const char* theVarName)
+{
+  vector<string> aVarNames = _impl->ParseVariables(string(theVarName));
+  SALOMEDS::ListOfStrings_var aResult = new SALOMEDS::ListOfStrings;
+
+  int aLen = aVarNames.size();
+  aResult->length(aLen);
+
+  for (int anInd = 0; anInd < aLen; anInd++)
+    aResult[anInd] = CORBA::string_dup(aVarNames[anInd].c_str());
+  
+  return aResult._retn();
+}
+
 //============================================================================
 /*! Function : GetDefaultScript
  *  Purpose  : 
index 8466582eeb1053ab997a8dd0045d79f9817946e2..6ee2028d78e4af5deabe523c8370c8d8634ac0a4 100644 (file)
@@ -321,6 +321,8 @@ public:
   virtual CORBA::Boolean RenameVariable(const char* theVarName, const char* theNewVarName);
 
   virtual CORBA::Boolean IsVariableUsed(const char* theVarName);
+  
+  virtual SALOMEDS::ListOfStrings* ParseVariables(const char* theVars);
 
   virtual char* GetDefaultScript(const char* theModuleName, const char* theShift);
 
index 2cb48ed4b9ee05fa3a09385e9234853417a88934..338b8f17c3bca98067aad5871b176eda687bac93 100644 (file)
@@ -111,6 +111,8 @@ public:
   virtual bool RenameVariable(const std::string& theVarName,
                              const std::string& theNewVarName) = 0;
   virtual bool IsVariableUsed(const std::string& theVarName) = 0;
+
+  virtual std::vector<std::string> ParseVariables(const std::string& theVars) = 0;
   
 };
 
index ffedb4437954a262d433252c40fe6b6f45c74881..dca7d19da386367d08fbfeb038a412e634ba680a 100644 (file)
@@ -1834,6 +1834,16 @@ void SALOMEDSImpl_Study::ReplaceVariableAttribute(const std::string& theSource,
   }
 }
 
+//============================================================================
+/*! Function : EnableUseCaseAutoFilling
+ *  Purpose  :
+ */
+//============================================================================
+vector<string> SALOMEDSImpl_Study::ParseVariables(const string& theVariables) const
+{
+  return SALOMEDSImpl_Tool::splitStringWithEmpty( theVariables, VARIABLE_SEPARATOR );
+}
+
 //============================================================================
 /*! Function : EnableUseCaseAutoFilling
  *  Purpose  :
index 64ddce4825b0f36dbe1b432fd020547f37284cef..32f465bc818903d985176b13cfaf75d866726b64 100644 (file)
@@ -293,6 +293,8 @@ public:
                                const std::string& theDest);
   void ReplaceVariableAttribute(const std::string& theSource, const std::string& theDest);
 
+  std::vector<std::string> ParseVariables(const std::string& theVariables) const;
+
   //Returns a callback 
   SALOMEDSImpl_Callback* GetCallback() { return _cb; }