{
/*! \brief Name of the file in which the %Study is saved.
*/
- typedef string URLPath;
- typedef wstring URL;
++ typedef wstring URLPath;
/*! \brief Main identifier of an object in %SALOME application
*/
*/
typedef string SalomeReference;
-/*! \brief List of the names of studies which are currently open in this %SALOME session.
-
-Since %SALOME is a multi-study application, it allows to open a lot of studies
-during each working session.
-*/
- typedef sequence<URL> ListOfOpenStudies;
+ //! List of file names
+ typedef sequence<string> ListOfFileNames;
//! List of modification dates of a study
typedef sequence<string> ListOfDates ;
//! An unbounded sequence of strings
//! Exception indicating that this feature hasn't been implemented in %SALOME application.
exception NotImplemented {};
+ //==========================================================================
+/*! \brief %Study Builder Interface
- //===========================================================================
- /*! \brief %Study Interface
-
- The purpose of the %Study is to manage the data produced by various components of %SALOME platform.
- Most of the %Study operations are handled by the StudyManager and the StudyBuilder.
- What is left in the %Study interface are elementary inquiries.
- (Incidentally, we recall that a CORBA attribute is implemented as a pair of get
- and set methods.) A %Study is explored by a set of tools, mainly iterators
- , which are described further. Nevertheless, the %Study
- interface allows the search of an object by name or by ID.
- \note
- <BR><VAR>The Path </VAR>of an object in %SALOME application is much alike a standard path of a file.
- In general it's a string of names of directories divided by a slash '/'.
- <BR><VAR>The Context</VAR> is the current directory of an object.</P>
+ The purpose of the Builder is to add and/or remove objects and attributes.
+ A %StudyBuilder is linked to a %Study. A
+ command management is provided for the undo/redo functionalities.
+ \note
+ <BR><VAR>The Tag</VAR> of an item in %SALOME application is a symbolic description of
+ item's position in the tree-type structure of the browser. In general it has the following
+ form: <TT>0:2:1:1</TT>
*/
+ //==========================================================================
- interface Study
+ interface StudyBuilder
{
+/*! \brief %LockProtection Exception
-//! Invalid study reference
- exception StudyInvalidReference {};
-//! Invalid study context
- exception StudyInvalidContext {};
-//! Invalid study component
- exception StudyInvalidComponent {};
-//! Invalid directory of the %study exception
- exception StudyInvalidDirectory {};
-//! Exception pointing that this name of the study has already been used.
- exception StudyNameAlreadyUsed {};
-//! study object already exists
- exception StudyObjectAlreadyExists {};
-//! Invalid name of the %study exception
- exception StudyNameError {};
-//! Invalid study comment
- exception StudyCommentError {};
-
-/*! \brief The name of the %Study
-
- This is equivalent to the methods setName() & getName()
+ This exception is raised while attempting to modify a locked %study.
*/
- attribute wstring Name; // equivalent to setName() & getName()
-/*! \brief The ID of the %Study
+ exception LockProtection {};
+/*! \brief Creation of a new %SComponent.
- This is equivalent to the methods setID() & getID()
-*/
- attribute short StudyId;
-//! Sequence containing %SObjects
- typedef sequence<SObject> ListOfSObject;
-//! Get the persistent reference to the %Study.
- PersistentReference GetPersistentReference() raises(StudyInvalidReference);
-//! Get a transient reference to the %Study.
- SalomeReference GetTransientReference() raises(StudyInvalidReference);
+ Creates a new %SComponent
+ \param ComponentDataType Data type of the %SComponent which will be created.
-/*! \brief indicate whether the %Study is empty
+<em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
- \return True if the %Study is empty
*/
- boolean IsEmpty() raises(StudyInvalidReference);
-/*! \brief Find a %SComponent by its name.
-
- \param aComponentName It's a string value in the Comment Attribute of the Component,
- which is looked for, defining the data type of this Component.
+ SComponent NewComponent(in string ComponentDataType) raises(LockProtection);
+
-<em>See \ref example1 for an example of this method usage in batchmode of %SALOME application.</em>
+/*! \brief Definition of the instance to the %SComponent
+ Defines the instance to the %SComponent.
*/
- SComponent FindComponent (in string aComponentName) raises(StudyInvalidReference);
+ void DefineComponentInstance (in SComponent aComponent,in Object ComponentIOR) raises(LockProtection);
-/*! \brief Find a %SComponent by ID of the according %SObject
+/*! \brief Deletion of a %SComponent
+
+ Removes a %SComponent.
*/
- SComponent FindComponentID(in ID aComponentID) raises(StudyInvalidReference);
-/*! \brief Find a %SObject by the Name Attribute of this %SObject
+ void RemoveComponent(in SComponent aComponent) raises(LockProtection);
- \param anObjectName String parameter defining the name of the object
- \return The obtained %SObject
+/*! \brief Creation of a new %SObject
-<em>See \ref example19 for an example of this method usage in batchmode of %SALOME application.</em>
-*/
- SObject FindObject (in string anObjectName) raises(StudyInvalidReference);
-/*! \brief Find a %SObject by its ID
+ Creates a new %SObject under a definite father %SObject.
- \param aObjectID This parameter defines the ID of the required object
- \return The obtained %SObject
-*/
- SObject FindObjectID (in ID aObjectID) raises(StudyInvalidReference);
-/*! \brief Create a %SObject by its ID
+ \param theFatherObject The father %SObject under which this one should be created.
+ \return New %SObject
- \param aObjectID This parameter defines the ID of the required object
- \return The created %SObject
-*/
- SObject CreateObjectID (in ID aObjectID) raises(StudyInvalidReference);
-/*! \brief Find a %SObject by IOR of the object belonging to this %SObject.
+<em>See \ref example18 for an example of this method usage in batchmode of %SALOME application.</em>
- \param anObjectName This parameter defines the IOR of the object
- \return The obtained %SObject
*/
- SObject FindObjectIOR (in ID aObjectIOR) raises(StudyInvalidReference);
-/*! \brief Find in the study all %SObjects produced by a given %Component.
- \param anObjectName The Name Attribute of the searched %SObjects should correspond to <VAR>anObjectName</VAR>.
- \param aComponentName The name of the component, which objects are searched for.
-*/
- ListOfSObject FindObjectByName(in string anObjectName, in string aComponentName) raises(StudyInvalidReference);
-/*! \brief Find a %SObject by the path to it.
+ SObject NewObject (in SObject theFatherObject) raises(LockProtection);
- \param thePath The path to the required %SObject.
- \return The obtained %SObject.
-*/
- SObject FindObjectByPath(in string thePath) raises(StudyInvalidReference);
-/*! \brief Get the path to the %SObject.
-*/
- string GetObjectPath(in Object theObject) raises(StudyInvalidReference);
+/*! \brief Creation of a new %SObject with a definite %tag
-/*! \brief Set the context of the %Study.
+ Creates a new %SObject with a definite %tag.
- \param thePath String parameter defining the context of the study.
+ \param atag Long value corresponding to the tag of the new %SObject.
+ \return New %SObject
-<em>See \ref example23 for an example of this method usage in batchmode of %SALOME application.</em>
*/
- void SetContext(in string thePath) raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get the context of the %Study.
+ SObject NewObjectToTag (in SObject theFatherObject, in long atag) raises(LockProtection);
+/*! \brief Deletion of the %SObject
-<em>See \ref example23 for an example of this method usage in batchmode of %SALOME application.</em>
-*/
- string GetContext() raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get a list of names of objects corresponding to the context.
+ Removes a %SObject from the %StudyBuilder.
- \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+ \param anObject The %SObject to be deleted.
*/
- ListOfStrings GetObjectNames(in string theContext) raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get a list of names of directories and subdirectories corresponding to the context.
+ void RemoveObject (in SObject anObject) raises(LockProtection);
+/*! \brief Deletion of the %SObject with all his child objects.
- \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
-*/
- ListOfStrings GetDirectoryNames(in string theContext) raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get a list of names of Files corresponding to the context.
+ Removes the %SObject with all his child objects.
- \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
+ \param anObject The %SObject to be deleted with all child objects.
*/
- ListOfStrings GetFileNames(in string theContext) raises (StudyInvalidReference, StudyInvalidContext);
-/*! \brief Get a list of names of Components corresponding to the context.
+ void RemoveObjectWithChildren(in SObject anObject) raises(LockProtection);
- \note If the parameter <VAR>theContext</VAR> is empty, then the current context will be used.
-*/
- ListOfStrings GetComponentNames(in string theContext) raises(StudyInvalidReference);
-/*! \brief Create a new iterator of child levels of the given %SObject.
+/*!
+ Loads a %SComponent.
- \param aSO The given %SObject
- \return A new iterator of child levels of the given %SObject.
-*/
- ChildIterator NewChildIterator(in SObject aSO) raises(StudyInvalidReference);
+<em>See \ref example19 for an example of this method usage in batchmode of %SALOME application.</em>
-/*! \brief Create a new iterator of the %SComponents.
+*/
+ void LoadWith (in SComponent sco, in Driver Engine) raises (SALOME::SALOME_Exception);
+/*!
+ Loads a %SObject.
- \return A new iterator of the %SComponents.
+ \param sco %SObject to be loaded.
*/
- SComponentIterator NewComponentIterator() raises(StudyInvalidReference);
+ void Load (in SObject sco);
-/*! \brief Create a new %StudyBuilder to add or modify an object in the study.
+/*! \brief Looking for or creating an attribute assigned to the %SObject
- \return A new %StudyBuilder.
+ Allows to find or create an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
-<em>See \ref example20 for an example of this method usage in batchmode of %SALOME application.</em>
+<em>See \ref example1 for an example of this method usage in batchmode of %SALOME application.</em>
*/
- StudyBuilder NewBuilder() raises(StudyInvalidReference);
-/*! \brief Labels dependency
- Updates the map with IOR attribute. It's an inner method used for optimization.
-*/
- void UpdateIORLabelMap(in string anIOR, in string anEntry) raises(StudyInvalidReference);
+ GenericAttribute FindOrCreateAttribute(in SObject anObject,
+ in string aTypeOfAttribute) raises(LockProtection);
-/*! \brief Getting properties of the study
+/*! \brief Looking for an attribute assigned to a %SObject
- Returns the attribute, which contains the properties of this study.
+ Allows to find an attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute which is looked for.
+ \param aTypeOfAttribute Type of the attribute.
+ \param anAttribute Where the attribute is placed if it's found.
+ \return True if it finds an attribute.
+ */
-<em>See \ref example20 for an example of this method usage in batchmode of %SALOME application.</em>
+ boolean FindAttribute(in SObject anObject,
+ out GenericAttribute anAttribute,
+ in string aTypeOfAttribute);
+/*! \brief Deleting the attribute assigned to the %SObject
-*/
- AttributeStudyProperties GetProperties() raises(StudyInvalidReference);
-/*! \brief Indicate whether the %study has been saved
-*/
- attribute boolean IsSaved;
-/*! \brief Indicate whether the %study has been modified and not saved.
+ Removes the attribute of a specific type which is assigned to the object.
+ \param anObject The %SObject corresponding to the attribute.
+ \param aTypeOfAttribute Type of the attribute.
- Returns True if the %study has been modified and not saved.
+<em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
*/
- boolean IsModified() raises(StudyInvalidReference);
-
-/*! \brief Mark the %study as being modified and not saved.
+ void RemoveAttribute(in SObject anObject,
+ in string aTypeOfAttribute) raises(LockProtection);
+/*!
+ Adds a reference between %anObject and %theReferencedObject.
+ \param anObject The %SObject which will get a reference
+ \param theReferencedObject The %SObject having a reference
*/
- void Modified() raises(StudyInvalidReference);
-/*! \brief Indicate the file where the %study has been saved
+ void Addreference(in SObject anObject,
+ in SObject theReferencedObject) ;
+
+/*!
+ Removes a reference from %anObject to another object.
+ \param anObject The %SObject which contains a reference
*/
- attribute wstring URL;
-/*! \brief List of %SObjects
+ void RemoveReference(in SObject anObject) ;
- Returns the list of %SObjects which refers to %anObject.
-*/
- ListOfSObject FindDependances(in SObject anObject) raises(StudyInvalidReference);
+/*! \brief Identification of the %SObject's substructure.
-/*! \brief The date of the last saving of the study
+ Identification of the %SObject's substructure by GUID.
- Returns the date of the last saving of study with format: "DD/MM/YYYY HH:MM"
-*/
- string GetLastModificationDate() raises(StudyInvalidReference);
-/*! \brief The list of modification dates of the study
- Returns the list of modification dates (without creation date) with format "DD/MM/YYYY HH:MM".
- Note : the first modification begins the list.
+ \param anObject The %SObject which will be identified
+ \param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000"
*/
-
- void SetGUID(in SObject anObject, in string theGUID) raises(LockProtection);
- ListOfDates GetModificationsDate() raises(StudyInvalidReference);
-/*! \brief Object conversion.
++ void SetGUID(in SObject anObject, in string theGUID) raises(LockProtection);
+/*!
+Searches for a definite %SObject with a definite GUID and returns True if it finds it.
- Converts an object into IOR.
- \return IOR
+\param anObject A definite %SObject which will be identified
+\param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000"
*/
- string ConvertObjectToIOR(in Object theObject);
-/*! \brief Object conversion.
+ boolean IsGUID(in SObject anObject, in string theGUID);
- Converts IOR into an object.
- \return An object
-*/
- Object ConvertIORToObject(in string theIOR);
+/*! \brief Creation of a new command
-/*! \brief Get a new %UseCaseBuilder.
-*/
- UseCaseBuilder GetUseCaseBuilder() raises(StudyInvalidReference);
+ Creates a new command which can contain several different actions.
-/*! \brief Close the components in the study, remove itself from the %StudyManager.
-*/
- void Close() raises(StudyInvalidReference);
+<em>See \ref example3 for an example of this method usage in batchmode of %SALOME application.</em>
-/*! \brief Enable (if isEnabled = True)/disable automatic addition of new %SObjects to the use case.
*/
- void EnableUseCaseAutoFilling(in boolean isEnabled) raises(StudyInvalidReference);
+ void NewCommand(); // command management
+/*! \brief Execution of the command
-/*!
- Functions for internal usage only
-*/
- void AddPostponed(in string theIOR) raises(StudyInvalidReference);
+ Commits all actions declared within this command.
- void AddCreatedPostponed(in string theIOR) raises(StudyInvalidReference);
+ \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
- void RemovePostponed(in long theUndoLimit) raises(StudyInvalidReference);
+<em>See \ref example16 for an example of this method usage in batchmode of %SALOME application.</em>
- void UndoPostponed(in long theWay) raises(StudyInvalidReference);
-
- boolean DumpStudy(in string thePath,
- in string theBaseName,
- in boolean isPublished,
- in boolean isMultiFile) raises(StudyInvalidReference);
-
-/*! \brief Get an AttributeParameter used to store common parameters for given %theSavePoint.
-
- \param theID identifies a common parameters set (Example: "Interface Applicative")
- \param theSavePoint is number of a set of parameters as there can be several sets
-*/
- AttributeParameter GetCommonParameters(in string theID, in long theSavePoint) raises(StudyInvalidReference);
-
-/*! \brief Get an AttributeParameter used to store parameters for given %theModuleName.
-
- \param theID identifies a common parameters set (Example: "Interface Applicative")
- \param theModuleName is a name of the module (Example: "Geometry")
- \param theSavePoint is number of a set of parameters as there can be several sets
*/
- AttributeParameter GetModuleParameters(in string theID, in string theModuleName, in long theSavePoint) raises(StudyInvalidReference);
-
-
-/*! \brief Get a default Python script to restore visual parameters for given %theModuleName.
-
- \param theModuleName is a name of the module (Example: "Geometry")
- \param indent is a string to use for script indentation
-*/
- string GetDefaultScript(in string theModuleName, in string indent) raises(StudyInvalidReference);
-
+ void CommitCommand() raises(LockProtection); // command management
/*!
- Private method, returns an implementation of this Study.
- \param theHostname is a hostname of the caller
- \param thePID is a process ID of the caller
- \param isLocal is set True if the Study is launched locally with the caller
-*/
- long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
-
-
-/*! \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) raises(StudyInvalidReference);
-
-/*! \brief Indicate if the Study is locked
-
- Returns True if the Study was marked locked.
+ Returns True if at this moment there is a command under execution.
*/
- boolean IsStudyLocked() raises(StudyInvalidReference);
+ boolean HasOpenCommand();
+/*! \brief Cancelation of the command
-/*! \brief Mark this Study as being unlocked by the given locker.
+ Cancels all actions declared within the command.
- 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.
+<em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
*/
- void UnLockStudy(in string theLockerID) raises(StudyInvalidReference);
+ void AbortCommand(); // command management
+/*! \brief Undolimit
-/*! \brief Get the list of IDs of the Study's lockers.
+ The number of actions which can be undone
*/
- ListOfStrings GetLockerID() raises(StudyInvalidReference);
+ attribute long UndoLimit;
+/*! \brief Undo method
-/*! \brief Create real variable with Name theVarName and value theValue
+ Cancels all actions of the last command.
- (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 ) raises(StudyInvalidReference);
+ \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
-/*! \brief Create integer variable with Name theVarName and value theValue
+<em>See \ref example16 for an example of this method usage in batchmode of %SALOME application.</em>
- (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 ) raises(StudyInvalidReference);
-/*! \brief Create boolean variable with Name theVarName and value theValue
+ void Undo() raises (LockProtection);
+/*! \brief Redo method
- (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 ) raises(StudyInvalidReference);
+ Redoes all actions of the last command.
-/*! \brief Create string variable with Name theVarName and value theValue
+\exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
- (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 ) raises(StudyInvalidReference);
+<em>See \ref example16 for an example of this method usage in batchmode of %SALOME application.</em>
-/*! \brief Set current value as double for string variable
*/
- void SetStringAsDouble( in string theVarName, in double theValue ) raises(StudyInvalidReference);
+ void Redo() raises (LockProtection);
+/*!
+ Returns True if at this moment there are any actions which can be canceled.
-/*! \brief Get value of a real variable
+<em>See \ref example16 for an example of this method usage in batchmode of %SALOME application.</em>
- \param theVarName is a name of the variable.
*/
- double GetReal( in string theVarName ) raises(StudyInvalidReference);
+ boolean GetAvailableUndos();
+/*!
+ Returns True if at this moment there are any actions which can be redone.
-/*! \brief Get value of an integer variable
+<em>See \ref example3 for an example of this method usage in batchmode of %SALOME application.</em>
- \param theVarName is a name of the variable.
*/
- long GetInteger( in string theVarName ) raises(StudyInvalidReference);
-
-/*! \brief Get value of a boolean variable
+ boolean GetAvailableRedos();
+/*!
+ Puts name attribute with the given string value to the given %SObject
- \param theVarName is a name of the variable.
+ \param theSO Existing SObject to set name attribute.
+ \param theValue The value to be set to the name attribute.
*/
- boolean GetBoolean( in string theVarName ) raises(StudyInvalidReference);
+ void SetName(in SObject theSO, in string theValue) raises (LockProtection);
-/*! \brief Get value of a string variable
+/*!
+ Puts comment attribute with the given string value to the given %SObject
- \param theVarName is a name of the variable.
+ \param theSO Existing SObject to set comment attribute.
+ \param theValue The value to be set to the comment attribute.
*/
- string GetString( in string theVarName ) raises(StudyInvalidReference);
-
+ void SetComment(in SObject theSO, in string theValue) raises (LockProtection);
-/*! \brief Indicate if a variable is real
+/*!
+ Puts IOR attribute with the given string value to the given %SObject
- Return true if variable is real otherwise return false.
- \param theVarName is a name of the variable.
+ \param theSO Existing SObject to set IOR attribute.
+ \param theValue The value to be set to the IOR attribute.
*/
- boolean IsReal( in string theVarName ) raises(StudyInvalidReference);
+ void SetIOR(in SObject theSO, in string theValue) raises (LockProtection);
+ };
-/*! \brief Indicate if a variable is integer
+ //===========================================================================
+ /*! \brief %Study Interface
- Return true if variable is integer otherwise return false.
- \param theVarName is a name of the variable.
+ The purpose of the %Study is to manage the data produced by various components of %SALOME platform.
+ Most of the %Study operations are handled by the StudyBuilder.
+ What is left in the %Study interface are elementary inquiries.
+ (Incidentally, we recall that a CORBA attribute is implemented as a pair of get
+ and set methods.) A %Study is explored by a set of tools, mainly iterators
+ , which are described further. Nevertheless, the %Study
+ interface allows the search of an object by name or by ID.
+ \note
+ <BR><VAR>The Path </VAR>of an object in %SALOME application is much alike a standard path of a file.
+ In general it's a string of names of directories divided by a slash '/'.
+ <BR><VAR>The Context</VAR> is the current directory of an object.</P>
*/
- boolean IsInteger( in string theVarName ) raises(StudyInvalidReference);
-/*! \brief Indicate if a variable is boolean
+ interface Study
+ {
- Return true if variable is boolean otherwise return false.
- \param theVarName is a name of the variable.
+//! Invalid study reference
+ exception StudyInvalidReference {};
+//! Invalid study component
+ exception StudyInvalidComponent {};
+//! Invalid directory of the %study exception
+ exception StudyInvalidDirectory {};
+//! Exception pointing that this name of the study has already been used.
+ exception StudyNameAlreadyUsed {};
+//! study object already exists
+ exception StudyObjectAlreadyExists {};
+//! Invalid name of the %study exception
+ exception StudyNameError {};
+//! Invalid study comment
+ exception StudyCommentError {};
+
+/*!
+ Determines whether the server has already been loaded or not.
*/
- boolean IsBoolean( in string theVarName ) raises(StudyInvalidReference);
-
-/*! \brief Indicate if a variable is string
+ void ping();
+ void Shutdown();
+/*!
+ Returns the PID of the server
+*/
+ long getPID();
- Return true if variable is string otherwise return false.
- \param theVarName is a name of the variable.
+/*!
+ Shutdown the Study process.
*/
- boolean IsString( in string theVarName ) raises(StudyInvalidReference);
+ oneway void ShutdownWithExit();
-/*! \brief Indicate if a variable exists in the study
+/*! \brief The name of the %Study
- Return true if variable exists in the study,
- otherwise return false.
- \param theVarName is a name of the variable.
+ This is equivalent to the methods setName() & getName()
*/
- readonly attribute string Name; // equivalent to getName()
- boolean IsVariable( in string theVarName ) raises(StudyInvalidReference);
++ attribute wstring Name; // equivalent to getName()
+
-/*! \brief Get names of all variables from the study.
++/*! \brief Indicate the file where the %study has been saved
+ */
- ListOfStrings GetVariableNames() raises(StudyInvalidReference);
-/*! \brief Remove a variable
+//! Sequence containing %SObjects
+ typedef sequence<SObject> ListOfSObject;
+//! Get the persistent reference to the %Study.
+ PersistentReference GetPersistentReference() raises(StudyInvalidReference);
- Remove variable with the specified name from the study with substitution of its value.
+/*! \brief indicate whether the %Study is empty
- \param theVarName Name of the variable.
- \return Status of operation.
+ \return True if the %Study is empty
*/
- boolean RemoveVariable( in string theVarName ) raises(StudyInvalidReference);
+ boolean IsEmpty() raises(StudyInvalidReference);
+/*! \brief Find a %SComponent by its name.
-/*! \brief Rename a variable
+ \param aComponentName It's a string value in the Comment Attribute of the Component,
+ which is looked for, defining the data type of this Component.
- Rename variable with the specified name within the study.
+<em>See \ref example1 for an example of this method usage in batchmode of %SALOME application.</em>
- \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 ) raises(StudyInvalidReference);
-
-/*! \brief Indicate whether variable is used
-
- Check that variable is used in the study.
+ SComponent FindComponent (in string aComponentName) raises(StudyInvalidReference);
- \param theVarName Name of the variable.
- \return Variable usage.
+/*! \brief Find a %SComponent by ID of the according %SObject
*/
- boolean IsVariableUsed( in string theVarName ) raises(StudyInvalidReference);
+ SComponent FindComponentID(in ID aComponentID) raises(StudyInvalidReference);
+/*! \brief Find a %SObject by the Name Attribute of this %SObject
-/*! \brief Parse variables used for object creation
+ \param anObjectName String parameter defining the name of the object
+ \return The obtained %SObject
- \param string with variables, separated by special symbol.
- \return Variables list.
+<em>See \ref example19 for an example of this method usage in batchmode of %SALOME application.</em>
*/
- ListOfListOfStrings ParseVariables( in string theVars ) raises(StudyInvalidReference);
-
-/*!
- Attach an observer to the Study
+ SObject FindObject (in string anObjectName) raises(StudyInvalidReference);
+/*! \brief Find a %SObject by its ID
- \param theObserver observer being attached
- \param modify when \c true, observer receives any object's modification events;
- otherwise observer receives object's creation events only
+ \param aObjectID This parameter defines the ID of the required object
+ \return The obtained %SObject
*/
- void attach(in SALOMEDS::Observer theObserver, in boolean modify);
-/*!
- Detach an observer from the Study
+ SObject FindObjectID (in ID aObjectID) raises(StudyInvalidReference);
+/*! \brief Create a %SObject by its ID
- \param theObserver observer to be detached
+ \param aObjectID This parameter defines the ID of the required object
+ \return The created %SObject
*/
- void detach(in SALOMEDS::Observer theObserver);
- };
-
- //==========================================================================
-/*! \brief %Study Builder Interface
+ SObject CreateObjectID (in ID aObjectID) raises(StudyInvalidReference);
+/*! \brief Find a %SObject by IOR of the object belonging to this %SObject.
- The purpose of the Builder is to add and/or remove objects and attributes.
- A %StudyBuilder is linked to a %Study. A
- command management is provided for the undo/redo functionalities.
- \note
- <BR><VAR>The Tag</VAR> of an item in %SALOME application is a symbolic description of
- item's position in the tree-type structure of the browser. In general it has the following
- form: <TT>0:2:1:1</TT>
+ \param anObjectName This parameter defines the IOR of the object
+ \return The obtained %SObject
*/
- //==========================================================================
-
- interface StudyBuilder
- {
-/*! \brief %LockProtection Exception
+ SObject FindObjectIOR (in ID aObjectIOR) raises(StudyInvalidReference);
+/*! \brief Find in the study all %SObjects produced by a given %Component.
- This exception is raised while attempting to modify a locked %study.
+ \param anObjectName The Name Attribute of the searched %SObjects should correspond to <VAR>anObjectName</VAR>.
+ \param aComponentName The name of the component, which objects are searched for.
*/
- exception LockProtection {};
-/*! \brief Creation of a new %SComponent.
-
- Creates a new %SComponent
- \param ComponentDataType Data type of the %SComponent which will be created.
-
-<em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
+ ListOfSObject FindObjectByName(in string anObjectName, in string aComponentName) raises(StudyInvalidReference);
+/*! \brief Find a %SObject by the path to it.
+ \param thePath The path to the required %SObject.
+ \return The obtained %SObject.
*/
- SComponent NewComponent(in string ComponentDataType) raises(LockProtection);
-/*! \brief Definition of the instance to the %SComponent
-
- Defines the instance to the %SComponent.
+ SObject FindObjectByPath(in string thePath) raises(StudyInvalidReference);
+/*! \brief Get the path to the %SObject.
*/
- void DefineComponentInstance (in SComponent aComponent,in Object ComponentIOR) raises(LockProtection);
+ string GetObjectPath(in Object theObject) raises(StudyInvalidReference);
-/*! \brief Deletion of a %SComponent
+/*! \brief Create a new iterator of child levels of the given %SObject.
- Removes a %SComponent.
+ \param aSO The given %SObject
+ \return A new iterator of child levels of the given %SObject.
*/
- void RemoveComponent(in SComponent aComponent) raises(LockProtection);
+ ChildIterator NewChildIterator(in SObject aSO) raises(StudyInvalidReference);
-/*! \brief Creation of a new %SObject
+/*! \brief Create a new iterator of the %SComponents.
- Creates a new %SObject under a definite father %SObject.
+ \return A new iterator of the %SComponents.
+*/
+ SComponentIterator NewComponentIterator() raises(StudyInvalidReference);
- \param theFatherObject The father %SObject under which this one should be created.
- \return New %SObject
+/*! \brief Create a new %StudyBuilder to add or modify an object in the study.
-<em>See \ref example18 for an example of this method usage in batchmode of %SALOME application.</em>
+ \return A new %StudyBuilder.
+<em>See \ref example20 for an example of this method usage in batchmode of %SALOME application.</em>
*/
+ StudyBuilder NewBuilder() raises(StudyInvalidReference);
+/*! \brief Labels dependency
- SObject NewObject (in SObject theFatherObject) raises(LockProtection);
+ Updates the map with IOR attribute. It's an inner method used for optimization.
+*/
+ void UpdateIORLabelMap(in string anIOR, in string anEntry) raises(StudyInvalidReference);
-/*! \brief Creation of a new %SObject with a definite %tag
+/*! \brief Getting properties of the study
- Creates a new %SObject with a definite %tag.
+ Returns the attribute, which contains the properties of this study.
- \param atag Long value corresponding to the tag of the new %SObject.
- \return New %SObject
+<em>See \ref example20 for an example of this method usage in batchmode of %SALOME application.</em>
*/
- SObject NewObjectToTag (in SObject theFatherObject, in long atag) raises(LockProtection);
-/*! \brief Deletion of the %SObject
-
- Removes a %SObject from the %StudyBuilder.
-
- \param anObject The %SObject to be deleted.
+ AttributeStudyProperties GetProperties() raises(StudyInvalidReference);
+/*! \brief Indicate whether the %study has been saved
*/
- void RemoveObject (in SObject anObject) raises(LockProtection);
-/*! \brief Deletion of the %SObject with all his child objects.
-
- Removes the %SObject with all his child objects.
+ attribute boolean IsSaved;
+/*! \brief Indicate whether the %study has been modified and not saved.
- \param anObject The %SObject to be deleted with all child objects.
+ Returns True if the %study has been modified and not saved.
*/
- void RemoveObjectWithChildren(in SObject anObject) raises(LockProtection);
-
-/*!
- Loads a %SComponent.
-
-<em>See \ref example19 for an example of this method usage in batchmode of %SALOME application.</em>
+ boolean IsModified() raises(StudyInvalidReference);
+/*! \brief Mark the %study as being modified and not saved.
*/
- void LoadWith (in SComponent sco, in Driver Engine) raises (SALOME::SALOME_Exception);
-/*!
- Loads a %SObject.
+ void Modified() raises(StudyInvalidReference);
- \param sco %SObject to be loaded.
+/*! \brief Indicate the file where the %study has been saved
*/
- attribute string URL;
- void Load (in SObject sco);
-
-/*! \brief Looking for or creating an attribute assigned to the %SObject
++ attribute wstring URL;
- Allows to find or create an attribute of a specific type which is assigned to the object.
- \param anObject The %SObject corresponding to the attribute which is looked for.
- \param aTypeOfAttribute Type of the attribute.
+/*! \brief List of %SObjects
-<em>See \ref example1 for an example of this method usage in batchmode of %SALOME application.</em>
+ Returns the list of %SObjects which refers to %anObject.
*/
+ ListOfSObject FindDependances(in SObject anObject) raises(StudyInvalidReference);
- GenericAttribute FindOrCreateAttribute(in SObject anObject,
- in string aTypeOfAttribute) raises(LockProtection);
+/*! \brief The date of the last saving of the study
-/*! \brief Looking for an attribute assigned to a %SObject
+ Returns the date of the last saving of study with format: "DD/MM/YYYY HH:MM"
+*/
+ string GetLastModificationDate() raises(StudyInvalidReference);
+/*! \brief The list of modification dates of the study
- Allows to find an attribute of a specific type which is assigned to the object.
- \param anObject The %SObject corresponding to the attribute which is looked for.
- \param aTypeOfAttribute Type of the attribute.
- \param anAttribute Where the attribute is placed if it's found.
- \return True if it finds an attribute.
- */
+ Returns the list of modification dates (without creation date) with format "DD/MM/YYYY HH:MM".
+ Note : the first modification begins the list.
+*/
+ ListOfDates GetModificationsDate() raises(StudyInvalidReference);
+/*! \brief Object conversion.
- boolean FindAttribute(in SObject anObject,
- out GenericAttribute anAttribute,
- in string aTypeOfAttribute);
-/*! \brief Deleting the attribute assigned to the %SObject
+ Converts an object into IOR.
+ \return IOR
+*/
+ string ConvertObjectToIOR(in Object theObject);
+/*! \brief Object conversion.
- Removes the attribute of a specific type which is assigned to the object.
- \param anObject The %SObject corresponding to the attribute.
- \param aTypeOfAttribute Type of the attribute.
+ Converts IOR into an object.
+ \return An object
+*/
+ Object ConvertIORToObject(in string theIOR);
-<em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
+/*! \brief Get a new %UseCaseBuilder.
*/
- void RemoveAttribute(in SObject anObject,
- in string aTypeOfAttribute) raises(LockProtection);
-/*!
- Adds a reference between %anObject and %theReferencedObject.
- \param anObject The %SObject which will get a reference
- \param theReferencedObject The %SObject having a reference
+ UseCaseBuilder GetUseCaseBuilder() raises(StudyInvalidReference);
+
+/*! \brief Clear a study object
*/
+ void Clear() raises(StudyInvalidReference);
- void Addreference(in SObject anObject,
- in SObject theReferencedObject) ;
-
-/*!
- Removes a reference from %anObject to another object.
- \param anObject The %SObject which contains a reference
+/*! \brief Initialization a study object
*/
+ void Init() raises(StudyInvalidReference);
+
+/*! \brief Open a study by url
- void RemoveReference(in SObject anObject) ;
-
-/*!
- Adds a directory in the %Study.
- \param theName String parameter defining the name of the directory.
-
-<em>See \ref example23 for an example of this method usage in batchmode of %SALOME application.</em>
-
+ Reads and activates the structure of the study %Objects.
+ \param aStudyUrl The path to the study
*/
- void AddDirectory(in string theName) raises(LockProtection);
-
-/*! \brief Identification of the %SObject's substructure.
+ boolean Open (in URLPath aStudyUrl) raises (SALOME::SALOME_Exception);
+
+/*! \brief Saving the study in a file (or files).
- Identification of the %SObject's substructure by GUID.
+ Saves a study.
+ \param theMultiFile If this parameter is True the study will be saved in several files.
+ \param theASCII If this parameter is True the study will be saved in ASCII format, otherwise in HDF format.
+*/
+ boolean Save(in boolean theMultiFile, in boolean theASCII) raises(StudyInvalidReference);
+
+/*! \brief Saving the study in a specified file (or files).
+ Saves the study in a specified file (or files).
+ \param aUrl The path to the definite file in whcih the study will be saved
+ \param theMultiFile If this parameter is True the study will be saved in several files.
+ \param theASCII If this parameter is True the study will be saved in ASCII format, otherwise in HDF format.
- \param anObject The %SObject which will be identified
- \param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000"
+<em>See \ref example1 for an example of this method usage in batchmode of %SALOME application.</em>
*/
-
- void SetGUID(in SObject anObject, in string theGUID) raises(LockProtection);
+ boolean SaveAs(in URLPath aUrl, // if the file already exists
+ in boolean theMultiFile, // overwrite (as option)
+ in boolean theASCII)
+ raises(StudyInvalidReference);
/*!
-Searches for a definite %SObject with a definite GUID and returns True if it finds it.
-
-\param anObject A definite %SObject which will be identified
-\param theGUID GUID has the following format "00000000-0000-0000-0000-000000000000"
+ Returns True, if the given %SObject can be copied to the clipboard.
*/
- boolean IsGUID(in SObject anObject, in string theGUID);
-
-/*! \brief Creation of a new command
-
- Creates a new command which can contain several different actions.
-
-<em>See \ref example3 for an example of this method usage in batchmode of %SALOME application.</em>
-
+ boolean CanCopy(in SObject theObject) raises(StudyInvalidReference);
+/*!
+ Returns True, if the given %SObject is copied to the clipboard.
+ \param theObject The %SObject which will be copied
*/
- void NewCommand(); // command management
-/*! \brief Execution of the command
-
- Commits all actions declared within this command.
-
- \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
-
-<em>See \ref example16 for an example of this method usage in batchmode of %SALOME application.</em>
-
+ boolean Copy(in SObject theObject) raises(StudyInvalidReference);
+/*!
+ Returns True, if the object from the clipboard can be pasted to the given %SObject.
+ \param theObject The %SObject stored in the clipboard.
*/
- void CommitCommand() raises(LockProtection); // command management
+ boolean CanPaste(in SObject theObject) raises(StudyInvalidReference);
/*!
- Returns True if at this moment there is a command under execution.
+ Returns the %SObject in which the object from the clipboard was pasted to.
+ \param theObject The %SObject which will be pasted
+ \exception SALOMEDS::StudyBuilder::LockProtection This exception is raised, when trying to paste
+ an object into a study, which is protected for modifications.
*/
- boolean HasOpenCommand();
-/*! \brief Cancelation of the command
-
- Cancels all actions declared within the command.
+ SObject Paste(in SObject theObject) raises (SALOMEDS::StudyBuilder::LockProtection);
-<em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
+/*! \brief Enable (if isEnabled = True)/disable automatic addition of new %SObjects to the use case.
*/
- void AbortCommand(); // command management
-/*! \brief Undolimit
+ void EnableUseCaseAutoFilling(in boolean isEnabled) raises(StudyInvalidReference);
- The number of actions which can be undone
+/*!
+ Functions for internal usage only
*/
- attribute long UndoLimit;
-/*! \brief Undo method
+ void AddPostponed(in string theIOR) raises(StudyInvalidReference);
- Cancels all actions of the last command.
+ void AddCreatedPostponed(in string theIOR) raises(StudyInvalidReference);
- \exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
+ void RemovePostponed(in long theUndoLimit) raises(StudyInvalidReference);
-<em>See \ref example16 for an example of this method usage in batchmode of %SALOME application.</em>
+ void UndoPostponed(in long theWay) raises(StudyInvalidReference);
-*/
- void Undo() raises (LockProtection);
-/*! \brief Redo method
+ boolean DumpStudy(in string thePath,
+ in string theBaseName,
+ in boolean isPublished,
+ in boolean isMultiFile) raises(StudyInvalidReference);
- Redoes all actions of the last command.
+/*! \brief Get an AttributeParameter used to store common parameters for given %theSavePoint.
-\exception LockProtection This exception is raised, when trying to perform this command a study, which is protected for modifications.
+ \param theID identifies a common parameters set (Example: "Interface Applicative")
+ \param theSavePoint is number of a set of parameters as there can be several sets
+*/
+ AttributeParameter GetCommonParameters(in string theID, in long theSavePoint) raises(StudyInvalidReference);
-<em>See \ref example16 for an example of this method usage in batchmode of %SALOME application.</em>
+/*! \brief Get an AttributeParameter used to store parameters for given %theModuleName.
+ \param theID identifies a common parameters set (Example: "Interface Applicative")
+ \param theModuleName is a name of the module (Example: "Geometry")
+ \param theSavePoint is number of a set of parameters as there can be several sets
*/
- void Redo() raises (LockProtection);
-/*!
- Returns True if at this moment there are any actions which can be canceled.
+ AttributeParameter GetModuleParameters(in string theID, in string theModuleName, in long theSavePoint) raises(StudyInvalidReference);
-<em>See \ref example16 for an example of this method usage in batchmode of %SALOME application.</em>
+/*! \brief Get a default Python script to restore visual parameters for given %theModuleName.
+
+ \param theModuleName is a name of the module (Example: "Geometry")
+ \param indent is a string to use for script indentation
*/
- boolean GetAvailableUndos();
+ string GetDefaultScript(in string theModuleName, in string indent) raises(StudyInvalidReference);
+
/*!
- Returns True if at this moment there are any actions which can be redone.
+ Private method, returns an implementation of this Study.
+ \param theHostname is a hostname of the caller
+ \param thePID is a process ID of the caller
+ \param isLocal is set True if the Study is launched locally with the caller
+*/
+ long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
-<em>See \ref example3 for an example of this method usage in batchmode of %SALOME application.</em>
-*/
- boolean GetAvailableRedos();
-/*!
- Puts name attribute with the given string value to the given %SObject
+/*! \brief Mark this Study as being locked by the given locker.
- \param theSO Existing SObject to set name attribute.
- \param theValue The value to be set to the name attribute.
+ 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 SetName(in SObject theSO, in string theValue) raises (LockProtection);
+ void SetStudyLock(in string theLockerID) raises(StudyInvalidReference);
-/*!
- Puts comment attribute with the given string value to the given %SObject
+/*! \brief Indicate if the Study is locked
- \param theSO Existing SObject to set comment attribute.
- \param theValue The value to be set to the comment attribute.
+ Returns True if the Study was marked locked.
*/
- void SetComment(in SObject theSO, in string theValue) raises (LockProtection);
+ boolean IsStudyLocked() raises(StudyInvalidReference);
-/*!
- Puts IOR attribute with the given string value to the given %SObject
+/*! \brief Mark this Study as being unlocked by the given locker.
- \param theSO Existing SObject to set IOR attribute.
- \param theValue The value to be set to the IOR attribute.
+ 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 SetIOR(in SObject theSO, in string theValue) raises (LockProtection);
- };
-
- //==========================================================================
-/*! \brief %Study Manager interface
+ void UnLockStudy(in string theLockerID) raises(StudyInvalidReference);
- The purpose of the Manager is to manipulate the %Studies. You will find in this
- interface the methods to create, open,
- close, and save a %Study. Since a %SALOME session is multi-document, you will
- also find the methods allowing to navigate
- through the collection of studies present in a session.
+/*! \brief Get the list of IDs of the Study's lockers.
*/
- //==========================================================================
+ ListOfStrings GetLockerID() raises(StudyInvalidReference);
- interface StudyManager
- {
-/*!
- Determines whether the server has already been loaded or not.
+/*! \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 ping();
+ void SetReal( in string theVarName, in double theValue ) raises(StudyInvalidReference);
- void Shutdown();
+/*! \brief Create integer variable with Name theVarName and value theValue
-/*!
- Returns the PID of the server
+ (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.
*/
- long getPID();
+ void SetInteger( in string theVarName, in long theValue ) raises(StudyInvalidReference);
+/*! \brief Create boolean variable with Name theVarName and value theValue
-/*!
- Shutdown the StudyManager process.
+ (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.
*/
- oneway void ShutdownWithExit();
+ void SetBoolean( in string theVarName, in boolean theValue ) raises(StudyInvalidReference);
-/*! \brief Creation of a new study
+/*! \brief Create string variable with Name theVarName and value theValue
- Creates a new study with a definite name.
+ (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 ) raises(StudyInvalidReference);
- \param study_name String parameter defining the name of the study
+/*! \brief Set current value as double for string variable
+*/
+ void SetStringAsDouble( in string theVarName, in double theValue ) raises(StudyInvalidReference);
-<em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
+/*! \brief Get value of a real variable
+ \param theVarName is a name of the variable.
*/
- Study NewStudy(in wstring study_name) raises (SALOME::SALOME_Exception);
-
-/*! \brief Open a study
+ double GetReal( in string theVarName ) raises(StudyInvalidReference);
- Reads and activates the structure of the study %Objects.
- \param aStudyUrl The path to the study
- \warning This method doesn't activate the corba objects. Only a component can do it.
+/*! \brief Get value of an integer variable
-<em>See \ref example1 for an example of this method usage in batchmode of %SALOME application.</em>
+ \param theVarName is a name of the variable.
*/
- Study Open (in URL aStudyUrl) raises (SALOME::SALOME_Exception);
+ long GetInteger( in string theVarName ) raises(StudyInvalidReference);
-/*! \brief Closing the study
+/*! \brief Get value of a boolean variable
- Closes a study.
+ \param theVarName is a name of the variable.
*/
- void Close(in Study aStudy);
-/*! \brief Saving the study in a HDF file (or files).
+ boolean GetBoolean( in string theVarName ) raises(StudyInvalidReference);
- Saves a study.
+/*! \brief Get value of a string variable
- \param theMultiFile If this parameter is True the study will be saved in several files.
+ \param theVarName is a name of the variable.
+*/
+ string GetString( in string theVarName ) raises(StudyInvalidReference);
-<em>See \ref example19 for an example of this method usage in batchmode of %SALOME application.</em>
-*/
- boolean Save(in Study aStudy, in boolean theMultiFile);
-/*! \brief Saving a study in a ASCII file (or files).
+/*! \brief Indicate if a variable is real
- Saves a study in an ASCII format file (or files).
- \param theMultiFile If this parameter is True the study will be saved in several files.
+ Return true if variable is real otherwise return false.
+ \param theVarName is a name of the variable.
*/
- boolean SaveASCII(in Study aStudy, in boolean theMultiFile);
-/*! \brief Saving the study in a specified HDF file (or files).
+ boolean IsReal( in string theVarName ) raises(StudyInvalidReference);
- Saves the study in a specified file (or files).
- \param aUrl The path to the definite file in whcih the study will be saved
- \param aStudy The study which will be saved
- \param theMultiFile If this parameter is True the study will be saved in several files.
+/*! \brief Indicate if a variable is integer
-<em>See \ref example1 for an example of this method usage in batchmode of %SALOME application.</em>
+ Return true if variable is integer otherwise return false.
+ \param theVarName is a name of the variable.
*/
- boolean SaveAs(in URL aUrl, // if the file already exists
- in Study aStudy,
- in boolean theMultiFile); // overwrite (as option)
-/*! \brief Saving the study in a specified ASCII file (or files).
+ boolean IsInteger( in string theVarName ) raises(StudyInvalidReference);
- Saves the study in a specified ASCII file (or files).
+/*! \brief Indicate if a variable is boolean
- \param aUrl The path to the definite file in whcih the study will be saved
- \param aStudy The study which will be saved
- \param theMultiFile If this parameter is True the study will be saved in several files.
+ Return true if variable is boolean otherwise return false.
+ \param theVarName is a name of the variable.
*/
- boolean SaveAsASCII(in URL aUrl, // if the file already exists
- in Study aStudy,
- in boolean theMultiFile); // overwrite (as option)
+ boolean IsBoolean( in string theVarName ) raises(StudyInvalidReference);
+/*! \brief Indicate if a variable is string
-/*! \brief List of open studies.
+ Return true if variable is string otherwise return false.
+ \param theVarName is a name of the variable.
+*/
+ boolean IsString( in string theVarName ) raises(StudyInvalidReference);
-Gets the list of open studies
+/*! \brief Indicate if a variable exists in the study
- \return A list of open studies in the current session.
+ Return true if variable exists in the study,
+ otherwise return false.
+ \param theVarName is a name of the variable.
*/
- ListOfOpenStudies GetOpenStudies();
-
-/*! \brief Getting a particular %Study picked by name
+ boolean IsVariable( in string theVarName ) raises(StudyInvalidReference);
- Activates a particular %Study
- among the session collection picking it by name.
- \param aStudyName The name of the study
+/*! \brief Get names of all variables from the study.
*/
- Study GetStudyByName (in URL aStudyName);
+ ListOfStrings GetVariableNames() raises(StudyInvalidReference);
-/*! \brief Getting a particular %Study picked by ID
+/*! \brief Remove a variable
+
+ Remove variable with the specified name from the study with substitution of its value.
- Activates a particular %Study
- among the session collection picking it by ID.
- \param aStudyID The ID of the study
+ \param theVarName Name of the variable.
+ \return Status of operation.
*/
- Study GetStudyByID (in short aStudyID);
+ boolean RemoveVariable( in string theVarName ) raises(StudyInvalidReference);
- // copy/paste methods
+/*! \brief Rename a variable
-/*!
- Returns True, if the given %SObject can be copied to the clipboard.
-*/
- boolean CanCopy(in SObject theObject);
-/*!
- Returns True, if the given %SObject is copied to the clipboard.
- \param theObject The %SObject which will be copied
-*/
- boolean Copy(in SObject theObject);
-/*!
- Returns True, if the object from the clipboard can be pasted to the given %SObject.
- \param theObject The %SObject stored in the clipboard.
-*/
- boolean CanPaste(in SObject theObject);
-/*!
- Returns the %SObject in which the object from the clipboard was pasted to.
- \param theObject The %SObject which will be pasted
- \exception SALOMEDS::StudyBuilder::LockProtection This exception is raised, when trying to paste
- an object into a study, which is protected for modifications.
+ 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.
*/
- SObject Paste(in SObject theObject) raises (SALOMEDS::StudyBuilder::LockProtection);
+ boolean RenameVariable( in string theVarName, in string theNewVarName ) raises(StudyInvalidReference);
-/*! \brief Object conversion.
+/*! \brief Indicate whether variable is used
- Converts an object into IOR.
- \return IOR
+ Check that variable is used in the study.
+
+ \param theVarName Name of the variable.
+ \return Variable usage.
*/
- string ConvertObjectToIOR(in Object theObject);
-/*! \brief Object conversion.
+ boolean IsVariableUsed( in string theVarName ) raises(StudyInvalidReference);
- Converts IOR into an object.
- \return An object
+/*! \brief Parse variables used for object creation
+
+ \param string with variables, separated by special symbol.
+ \return Variables list.
*/
- Object ConvertIORToObject(in string theIOR);
+ ListOfListOfStrings ParseVariables( in string theVars ) raises(StudyInvalidReference);
/*!
- Private method, returns an implementation of this StudyManager.
- \param theHostname is a hostname of the caller
- \param thePID is a process ID of the caller
- \param isLocal is set True if the StudyManager is launched locally with the caller
+ Attach an observer to the Study
+
+ \param theObserver observer being attached
+ \param modify when \c true, observer receives any object's modification events;
+ otherwise observer receives object's creation events only
*/
- long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
+ void attach(in SALOMEDS::Observer theObserver, in boolean modify);
+/*!
+ Detach an observer from the Study
+ \param theObserver observer to be detached
+*/
+ void detach(in SALOMEDS::Observer theObserver);
};
-
//==========================================================================
/*! \brief %SObject interface