Salome HOME
PR: merge from branch BR_auto_V310 tag mergefrom_OCC_development_for_3_2_0a2_10mar06
[modules/kernel.git] / idl / SALOMEDS_Attributes.idl
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 // 
4 //  This library is free software; you can redistribute it and/or 
5 //  modify it under the terms of the GNU Lesser General Public 
6 //  License as published by the Free Software Foundation; either 
7 //  version 2.1 of the License. 
8 // 
9 //  This library is distributed in the hope that it will be useful, 
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 //  Lesser General Public License for more details. 
13 // 
14 //  You should have received a copy of the GNU Lesser General Public 
15 //  License along with this library; if not, write to the Free Software 
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 // 
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 //
20 //
21 //
22 //  File   : SALOMEDS.idl
23 //  Author : Yves FRICAUD
24 //  $Header$
25
26 /*! \file SALOMEDS_Attributes.idl This file contains a set of interfaces
27     for the attributes which can be assigned to %SObject
28 */
29 #ifndef _SALOMEDS_AttributesIDL_
30 #define _SALOMEDS_AttributesIDL_
31
32 #include "SALOMEDS.idl"
33
34 module SALOMEDS
35 {
36 /*! Sequence of double values
37 */
38   typedef sequence <double> DoubleSeq;
39 /*! Sequence of long values
40 */
41   typedef sequence <long>   LongSeq;
42 /*! Sequence of string values
43 */
44   typedef sequence <string> StringSeq;
45 /*! \struct Color
46    This structure stores a set of elements defining the color based on RGB palette. These elements are
47    used as input parameters for methods necessary for color definition of different items.
48 */
49   struct Color {
50 /*! Red color
51 */
52    double R;
53 /*! Green color
54 */
55    double G;
56 /*! Blue color
57 */
58    double B;
59   };
60   //==========================================================================
61 /*! \brief Attribute allowing to store a real value
62
63     Attribute allowing to store a real value
64 */
65  //==========================================================================
66
67   interface AttributeReal : GenericAttribute
68   {
69 /*!
70     Returns the value of this attribute.
71
72 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
73 */
74     double Value();
75 /*!
76    Sets the value of this attribute.
77
78 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
79 */
80     void   SetValue(in double value);
81
82   };
83   //==========================================================================
84 /*! \brief Attribute allowing to store an integer value
85
86    Attribute allowing to store an integer value
87 */
88   //==========================================================================
89   interface AttributeInteger : GenericAttribute
90   {
91 /*!
92     Returns the value of this attribute
93
94 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
95 */
96     long   Value();
97 /*!
98    Sets the value of this attribute
99
100 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
101 */
102     void   SetValue(in long value);
103   };
104   //==========================================================================
105 /*! \brief Attribute - sequence of real values
106
107   Attribute - sequence of real values, indexing from 1 (like in CASCADE).
108 */
109   //==========================================================================
110   interface AttributeSequenceOfReal : GenericAttribute
111   {
112 /*!
113    Initialization of the attribute with initial data.
114    \param other    Initially assigned sequence of real numbers.
115 */
116     void      Assign (in DoubleSeq other);
117 /*!
118    Returns the sequence of real numbers stored in the attribute.
119 */
120     DoubleSeq CorbaSequence();
121 /*!
122    Adds to the end of the sequence a real number.
123
124    \param value    A real number added to the sequence.
125
126 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
127 */
128     void      Add (in double value);
129 /*!
130     Removes a real number with a definite index
131     from the sequence of real numbers stored in the Attribute.
132
133     \param index The index of the given real number
134 */
135     void      Remove(in long index);
136 /*!
137     Substitutes a given real number with a definite index for another real number.
138     \param index The index of the given real number.
139     \param value The value of another real number.
140
141 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
142
143 */
144     void      ChangeValue(in long index, in double value);
145 /*!
146   Returns a given real number with a definite index
147     in the sequence of real numbers stored in the Attribute.
148     \param index The index of the given real number.
149
150 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
151 */
152     double    Value(in short index);
153 /*!
154     Returns the length of the sequence of real numbers stored in the Attribute.
155
156 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
157
158 */
159     long      Length();
160   };
161   //==========================================================================
162 /*! \brief Attribute - sequence of integer
163
164   Attribute - sequence of integer, indexing from 1 (like in CASCADE)
165 */
166   //==========================================================================
167   interface AttributeSequenceOfInteger : GenericAttribute
168   {
169 /*!
170    Initialisation of the attribute with initial data.
171    \param other    Initially assigned sequence of integer numbers.
172 */
173     void      Assign (in LongSeq other);
174 /*!
175    Returns the sequence of integer numbers stored in the Attribute.
176 */
177     LongSeq CorbaSequence();
178 /*!
179    Adds to the end of the sequence an integer number.
180    \param value    An integer number added to the sequence.
181
182 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
183
184 */
185     void      Add (in long value);
186 /*!
187     Removes an integer number with a definite index
188     from the sequence of integer numbers stored in the Attribute.
189     \param index The index of the given integer number.
190
191 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
192
193 */
194     void      Remove(in long index);
195 /*!
196     Substitutes an integer number with a definite index for another integer number.
197     \param index The index of the given integer number.
198     \param value The value of another integer number.
199
200 */
201     void      ChangeValue(in long index, in long value);
202 /*!
203    Returns a given integer number with a definite index
204     in the sequence of integer numbers stored in the Attribute.
205     \param index The index of the given integer number.
206
207 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
208 */
209     long      Value(in short index);
210 /*!
211     Returns the length of the sequence of integer numbers stored in the Attribute.
212
213 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
214
215 */
216     long      Length();
217   };
218
219   //==========================================================================
220 /*! \brief Name attribute
221
222    This attribute stores a string value, which corresponds to the name of the %SObject
223    or to the name of corresponding object.
224 */
225   //==========================================================================
226
227   interface AttributeName : GenericAttribute
228   {
229 /*!
230     Returns the value of this attribute
231
232 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
233 */
234     string Value();
235 /*!
236    Sets the value of this attribute
237
238    \param value This parameter defines the value of this attribute.
239
240 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
241 */
242     void   SetValue(in string value);
243   };
244
245   //==========================================================================
246 /*! \brief Comment attribute
247
248     This attribute stores a string value containing supplementary information about
249     the %SObject. In particular it contains the data type of the %SComponent.
250 */
251   //==========================================================================
252   interface AttributeComment : GenericAttribute
253   {
254 /*!
255     Returns the value of this attribute
256
257 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
258 */
259     string Value();
260 /*!
261    Sets the value of this attribute
262    \param value This string parameter defines the value of this attribute - a description of a %SObject.
263
264 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
265 */
266     void   SetValue(in string value);
267   };
268   //==========================================================================
269 /*! \brief IOR attribute
270
271     This attribute stores a string value identifying a runtime object.In particular
272     it contains CORBA Interoperable Object Reference.
273 */
274  //==========================================================================
275   interface AttributeIOR : GenericAttribute
276   {
277 /*!
278     Returns the value of this attribute
279
280 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
281 */
282     string Value();
283 /*!
284    Sets the value of this attribute
285    \param value This parameter defines the value of this attribute - IOR of a %SObject.
286
287 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
288 */
289     void   SetValue(in string value);
290   };
291
292   //==========================================================================
293 /*! \brief Persistent reference attribute
294
295      This attribute stores a persistent identifier of the object.
296 */
297   //==========================================================================
298   interface AttributePersistentRef : GenericAttribute
299   {
300 /*!
301     Returns the value of this attribute
302
303 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
304 */
305     string Value();
306 /*!
307    Sets the value of this attribute
308    \param value This parameter defines the value of this attribute.
309
310 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
311 */
312     void   SetValue(in string value);
313   };
314
315   //==========================================================================
316 /*! \brief External File definition
317
318      This attribute stores a path to an External File.
319 */
320   //==========================================================================
321   interface AttributeExternalFileDef: GenericAttribute
322   {
323 /*!
324     Returns the value of this attribute
325 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
326 */
327     string Value();
328 /*!
329    Sets the value of this attribute
330 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
331 */
332     void   SetValue(in string value);
333   };
334
335   //==========================================================================
336 /*! \brief File Type definition
337
338      This attribute stores an external File Type (see ExternalFileDef attribute).
339 */
340   //==========================================================================
341   interface AttributeFileType: GenericAttribute
342   {
343 /*!
344     Returns the value of this attribute
345 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
346 */
347     string Value();
348 /*!
349    Sets the value of this attribute
350 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
351 */
352     void   SetValue(in string value);
353   };
354
355   //==========================================================================
356   //Below the list of presentation attributes for display study tree in browser
357   //==========================================================================
358
359
360   //==========================================================================
361 /*! \brief Drawable flag Attribute.
362
363    This is a presentation attribute necessary for display of a study tree in the browser.
364    The item associated to a %SObject is created/displayed if TRUE.
365 */
366   //==========================================================================
367   interface AttributeDrawable : GenericAttribute
368   {
369 /*!
370    Returns TRUE if the item is drawable (as it is by default) and FALSE if it isn't.
371
372 <BR><VAR>See also <A href=exemple/Example8.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
373
374 */
375     boolean IsDrawable();
376 /*!
377 Sets the item to be drawable.
378
379 \param value If the value of this boolean parameter is TRUE (default) the item will be drawable.
380
381 <BR><VAR>See also <A href=exemple/Example8.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
382
383 */
384     void   SetDrawable(in boolean value);
385   };
386
387   //==========================================================================
388 /*! \brief Selectable flag Attribute.
389
390   This is a presentation attribute necessary for display of the study tree in the browser.
391   The item is selectable by %SALOME selection mechanism if TRUE.
392 */
393   //==========================================================================
394   interface AttributeSelectable : GenericAttribute
395   {
396 /*!
397    Returns TRUE if the item is selectable (as it is by default) and FALSE if it isn't.
398
399
400 <BR><VAR>See also <A href=exemple/Example9.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
401
402 */
403     boolean IsSelectable();
404 /*!
405 Sets the item to be selectable
406
407 \param value If the value of this parameter is TRUE (the default) the item will be set as selectable.
408
409 <BR><VAR>See also <A href=exemple/Example9.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
410
411 */
412     void   SetSelectable(in boolean value);
413   };
414
415   //==========================================================================
416 /*! \brief Expandable flag Attribute.
417
418  This is a presentation attribute necessary for display of the study tree in the browser.
419  It sets this item to be expandable even if it has no children if value is TRUE. If value is FALSE
420  expandable only if it has children.
421 */
422   //==========================================================================
423   interface AttributeExpandable : GenericAttribute
424   {
425 /*!
426     Returns TRUE if this item is expandable even when it has no children.
427
428 <BR><VAR>See also <A href=exemple/Example10.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
429
430 */
431     boolean IsExpandable();
432 /*! Sets this item to be expandable even if it has no children.
433
434  \param value If the value of this boolean parameter is TRUE, this item will be set as expandable.
435
436 <BR><VAR>See also <A href=exemple/Example10.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
437
438 */
439     void   SetExpandable(in boolean value);
440   };
441
442   //==========================================================================
443 /*! \brief Flags Attribute.
444
445    This interface is intended for storing different object attributes that
446    have only two states (0 and 1).
447 */
448   //==========================================================================
449
450   interface AttributeFlags : GenericAttribute
451   {
452     long    GetFlags();
453     void    SetFlags( in long theFlags );
454
455     boolean Get( in long theFlag );
456     void    Set( in long theFlag, in boolean theValue );
457   };
458
459   //==========================================================================
460 /*! \brief Graphic Attribute.
461    This class is intended for storing information about
462    graphic representation of objects in dirrent views
463 */
464   //==========================================================================
465
466   interface AttributeGraphic : GenericAttribute
467   {
468     void     SetVisibility( in long theViewId, in boolean theValue );
469     boolean  GetVisibility( in long theViewId );
470   };  
471
472   //==========================================================================
473 /*! \brief Opened flag Attribute.
474
475    This is a presentation attribute necessary for display of the study tree in the browser.
476    It sets this item to be open (its children are visible) if bool is TRUE, and to be closed (its children
477    are not visible) if bool is FALSE.
478 */
479   //==========================================================================
480   interface AttributeOpened : GenericAttribute
481   {
482 /*!
483     Returns TRUE if this item is open (its children are visible) and FALSE if it isn't.
484
485 <BR><VAR>See also <A href=exemple/Example11.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
486
487 */
488     boolean IsOpened();
489 /*!
490    Sets this item to be open (its children are visible)
491
492    \param value If the value of this boolean parameter is TRUE this item will be set as open,
493     and as closed if FALSE.
494
495 <BR><VAR>See also <A href=exemple/Example11.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
496
497 */
498     void   SetOpened(in boolean value);
499   };
500   //==========================================================================
501 /*! \brief TextColorAttribute.
502
503      This attribute sets the color of an item.
504 */
505   //==========================================================================
506   interface AttributeTextColor : GenericAttribute
507   {
508 /*!
509    Returns the color of an item.
510
511 <BR><VAR>See also <A href=exemple/Example12.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
512
513 */
514     Color TextColor();
515 /*!
516    Sets the color of an item.
517
518    \param value This parameter defines the color of the item.
519
520 <BR><VAR>See also <A href=exemple/Example12.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
521
522 */
523     void   SetTextColor(in Color value);
524   };
525
526   //==========================================================================
527   /*! \brief TextHighlightColorAttribute.
528
529      This attribute sets the highlight color of an item.
530 */
531   //==========================================================================
532   interface AttributeTextHighlightColor : GenericAttribute
533   {
534 /*!
535    Returns the highlight color of an item.
536
537
538
539 <BR><VAR>See also <A href=exemple/Example13.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
540
541 */
542     Color TextHighlightColor();
543 /*!
544    Sets the highlight color of an item.
545    \param value This parameter defines the highlight color of the item.
546
547 <BR><VAR>See also <A href=exemple/Example13.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
548
549 */
550     void   SetTextHighlightColor(in Color value);
551   };
552   //==========================================================================
553 /*! \brief PixMapAttribute.
554
555     This attribute stores an icon which is put before the name of an item.
556 */
557   //==========================================================================
558   interface AttributePixMap : GenericAttribute
559   {
560 /*!
561    Returns True if there is an icon before the name of the given item.
562 */
563     boolean HasPixMap();
564 /*!
565    Returns the name of the icon in the format of a string.
566
567 <BR><VAR>See also <A href=exemple/Example14.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
568
569 */
570     string  GetPixMap();
571 /*!
572    Sets the name of the icon.
573    \param value This string parameter defines the name of the icon.
574
575 <BR><VAR>See also <A href=exemple/Example14.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
576
577 */
578     void    SetPixMap(in string value);
579   };
580
581   //==========================================================================
582 /*! \brief TreeNodeAttribute.
583
584    A set of these attributes on the %SObjects of the %study forms an inner auxiliary
585    tree whith its own structure and identifier. The quantity of such trees with different
586    identifiers can be arbitrary.
587
588 <BR><VAR>See also <A href=exemple/Example18.html> an example </A> of usage of the methods of this interface in batchmode of %SALOME application.</VAR>
589
590 */
591   //==========================================================================
592   interface AttributeTreeNode : GenericAttribute
593   {
594 /*!
595   Assigns the father tree node to this tree node.
596 */
597     void              SetFather(in AttributeTreeNode value);
598 /*!
599   Returns True if there is a father tree node of this tree node.
600 */
601     boolean           HasFather();
602 /*!
603   Returns the father tree node of this tree node.
604 */
605     AttributeTreeNode GetFather();
606 /*!
607   Assigns the previous brother tree node to the given tree node.
608 */
609     void              SetPrevious(in AttributeTreeNode value);
610 /*!
611   Returns True if there is the previous brother tree node of this tree node.
612 */
613     boolean           HasPrevious();
614 /*!
615   Returns the previous brother tree node of this tree node.
616 */
617     AttributeTreeNode GetPrevious();
618 /*!
619   Sets the next brother tree node to this tree node.
620 */
621     void              SetNext(in AttributeTreeNode value);
622 /*!
623   Returns True if there is the next brother tree node of this tree node.
624 */
625     boolean           HasNext();
626 /*!
627   Returns the previous brother tree node of this tree node.
628 */
629     AttributeTreeNode GetNext();
630 /*!
631   Sets the first child tree node to this tree node.
632 */
633     void              SetFirst(in AttributeTreeNode value);
634 /*!
635   Returns True if there is the first child tree node of this tree node.
636 */
637     boolean           HasFirst();
638 /*!
639   Returns the first child tree node of this tree node.
640 */
641     AttributeTreeNode GetFirst();
642 /*!
643   Sets ID of a tree.
644   \param value String parameter defining the ID of a tree.
645   \note <br>Tree nodes of one tree have the same ID.
646 */
647     void              SetTreeID(in string value);
648 /*!
649   Gets ID of a tree.
650   \return An ID of a tree in the format of a string.
651 */
652     string            GetTreeID();
653
654 /*!
655    Adds a child tree node to the end of the list of children of this tree node.
656 */
657     void              Append(in AttributeTreeNode value);
658 /*!
659    Adds a child tree node to the beginning of the list of children of this tree node.
660
661 */
662     void              Prepend(in AttributeTreeNode value);
663 /*!
664    Adds a brother tree node before this tree node.
665     In this case the both tree nodes will belong to the same father.
666 */
667     void              InsertBefore(in AttributeTreeNode value);
668 /*!
669    Adds a brother tree node after this tree node.
670     In this case the both tree nodes will belong to the same father.
671 */
672     void              InsertAfter(in AttributeTreeNode value);
673 /*!
674    Deletes a tree node.
675
676 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
677
678 */
679     void              Remove();
680
681 /*!
682    Returns  the  depth  of the tree node in the
683    structure, it means the  number of  fathers of the given tree node.
684    (i.e.: the depth of the root tree node is 0).
685 */
686     long              Depth();
687 /*!
688     Returns True if it is a root tree node.
689 */
690     boolean           IsRoot();
691 /*!
692     Returns True if this tree node is a descendant of the tree node.
693 */
694     boolean           IsDescendant(in AttributeTreeNode value);
695 /*!
696     Returns True if this tree node is the father of the tree node.
697 */
698     boolean           IsFather(in AttributeTreeNode value);
699 /*!
700     Returns True if this tree node is a child of the tree node.
701 */
702     boolean           IsChild(in AttributeTreeNode value);
703 /*!
704    Returns ID of the according %SObject.
705 */
706     string            Label();
707   };
708   //==========================================================================
709 /*! \brief LocalID attribute
710
711    Attribute describing the link between a %SObject and a local object in the component.
712 */
713   //==========================================================================
714   interface AttributeLocalID : GenericAttribute
715   {
716 /*!
717    Returns the value of this attribute.
718
719 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
720 */
721     long   Value();
722 /*!
723    Sets the value of this attribute.
724
725    \param value This parameter defines the local ID which will be set.
726
727 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
728 */
729     void   SetValue(in long value);
730   };
731
732   //==========================================================================
733 /*! \brief Attribute storing GUID
734
735     Attribute allowing to store GUID
736 */
737   //==========================================================================
738   interface AttributeUserID : GenericAttribute
739   {
740 /*!
741    Returns the value of this attribute
742
743 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
744 */
745     string Value();
746 /*!
747    Sets the value of this attribute
748
749 <BR><VAR>See also <A href=exemple/Example1.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
750 */
751     void   SetValue(in string value);
752   };
753
754   //==========================================================================
755 /*! \brief %AttributeTarget iterface
756
757    This attribute stores the list of all %SObjects that refer
758    to this %SObject. This attribute is used for inner purposes of the application.
759    It is also needed for optimization.
760 */
761   //==========================================================================
762
763   interface AttributeTarget : GenericAttribute
764   {
765 /*!
766     Adds a %SObject to the list of %SObjects which refer to this %SObject.
767
768 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
769
770 */
771     void          Add(in SObject anObject);
772 /*!
773     Returns a list of %SObjects which refer to this %SObject.
774 */
775     SALOMEDS::Study::ListOfSObject Get();
776 /*!
777     Deletes a %SObject from the list of %SObjects which refer to this %SObject.
778
779 <BR><VAR>See also <A href=exemple/Example3.html> an example </A> of this method usage in batchmode of %SALOME application.</VAR>
780
781 */
782     void          Remove(in SObject anObject);
783   };
784   //==========================================================================
785   /*! \brief %AttributeTableOfInteger interface
786
787    This attribute allows to store a table of integers (indexing from 1 like in CASCADE)
788     and string titles of this table, of each row, of each column.
789
790 <BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
791
792 */
793   //==========================================================================
794
795   interface AttributeTableOfInteger : GenericAttribute
796   {
797 /*!
798    This exception is raised when an incorrect index is passed as parameter.
799 */
800     exception IncorrectIndex {};
801 /*!
802    This exception is raised when an incorrect length of the argument is passed as parameter.
803 */
804     exception IncorrectArgumentLength {};
805
806     // titles: for table, for each row, for each column
807 /*!
808    Sets the title of the table.
809 */
810     void SetTitle(in string theTitle);
811 /*!
812   Returns the title of the table.
813 */
814     string GetTitle();
815 /*!
816    Sets the title of a row with a definite index.
817 */
818     void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
819 /*!
820    Sets the titles for all rows of the table.
821 */
822     void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
823 /*!
824    Returns the titles of all rows of the table.
825 */
826     StringSeq GetRowTitles();
827 /*!
828    Sets the title of a column with a definite index.
829 */
830     void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
831 /*!
832    Sets the titles for all columns of the table.
833 */
834     void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
835 /*!
836    Returns the titles of all columns of the table.
837 */
838     StringSeq GetColumnTitles();
839
840     //Rows units
841 /*!
842    Sets the unit of a row with a definite index.
843 */
844     void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
845 /*!
846    Sets the units for all rows of the table.
847 */
848     void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
849 /*!
850    Returns the units of all rows of the table.
851 */
852     StringSeq GetRowUnits();
853
854     // table information
855 /*!
856    Returns the number of rows of the table.
857 */
858     long GetNbRows();
859 /*!
860    Returns the number of columns of the table.
861 */
862     long GetNbColumns();
863
864     // operations with rows
865 /*!
866    Adds a row to the end of the table.
867    \param theData A sequence of long values which will be set as elements of the added row.
868 */
869     void AddRow(in LongSeq theData) raises(IncorrectArgumentLength);
870 /*!
871    Sets the elements of a definite row.
872    \param theRow The number of the row.
873    \param theData A sequence of long values which will be set as elements of this row.
874
875 */
876     void SetRow(in long theRow, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
877 /*!
878    Gets the row of the table.
879
880    \param theRow The number of the row.
881    \return A sequence of long values which are set as elements of this row.
882 */
883     LongSeq GetRow(in long theRow) raises(IncorrectIndex);
884
885     // operations with columns
886 /*!
887    Adds a column to the end of the table.
888
889    \param theData A sequence of long values which will be set as elements of this column.
890 */
891     void AddColumn(in LongSeq theData) raises(IncorrectArgumentLength);
892 /*!
893    Sets the values of all elements of the column.
894
895   \param theData A sequence of long values which will be set as elements of this column.
896 */
897     void SetColumn(in long theColumn, in LongSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
898 /*!
899    Returns the column of the table.
900 */
901     LongSeq GetColumn(in long theColumn) raises(IncorrectIndex);
902
903     // operations with elements
904 /*!
905     Puts a value in the table.
906     \param theRow      The row, where the value will be placed.
907     \param theColumn   The column, where the value will be placed.
908 */
909     void PutValue(in long theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
910 /*!
911     Returns True if there is a value in the table.
912     \param theRow      The row containing the value
913     \param theColumn   The column containing the value
914 */
915     boolean HasValue(in long theRow, in long theColumn);
916 /*!
917     Returns the value from the table.
918     \param theRow      The row containing the value
919     \param theColumn   The column containing the value
920 */
921     long GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
922
923 /*!
924     Sets the max number of colums in the table.
925     \note It'd better to set it before filling the table.
926 */
927     void SetNbColumns(in long theNbColumns);
928
929 /*!
930     Returns the indices of the row where the values are defined.
931 */
932     LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
933     // operations with files
934 /*!
935    Reads a table from a file.
936 */
937     boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
938 /*!
939    Saves a table into a file.
940 */
941     SALOMEDS::TMPFile SaveToFile();
942   };
943
944   //==========================================================================
945 /*! \brief %AttributeTableOfReal interface
946
947    This attribute allows to store a table of reals (indexing from 1 like in CASCADE)
948     and string titles of this table, of each row, of each column.
949 <BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
950
951 */
952   //==========================================================================
953
954   interface AttributeTableOfReal : GenericAttribute
955   {
956 /*!
957    This exception is raised when an incorrect index is passed as parameter.
958 */
959     exception IncorrectIndex {};
960 /*!
961    This exception is raised when an incorrect length of the argument is passed as parameter.
962 */
963     exception IncorrectArgumentLength {};
964
965     // titles: for table, for each row, for each column
966 /*!
967    Sets the title of the table.
968 */
969     void SetTitle(in string theTitle);
970 /*!
971   Returns the title of the table.
972 */
973     string GetTitle();
974 /*!
975    Sets the title of a row with a definite index.
976 */
977     void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
978 /*!
979    Sets the titles for all rows of the table.
980 */
981     void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
982 /*!
983    Returns the titles of all rows of the table.
984 */
985     StringSeq GetRowTitles();
986 /*!
987    Sets the title of a column with a definite index.
988 */
989     void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
990 /*!
991    Sets the titles for all columns of the table.
992 */
993     void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
994 /*!
995    Returns the titles of all columns of the table.
996 */
997     StringSeq GetColumnTitles();
998
999     //Rows units
1000 /*!
1001    Sets the unit of a row with a definite index.
1002 */
1003     void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
1004 /*!
1005    Sets the units for all rows of the table.
1006 */
1007     void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
1008 /*!
1009    Returns the units of all rows of the table.
1010 */
1011     StringSeq GetRowUnits();
1012
1013     // table information
1014 /*!
1015    Returns the number of rows of the table.
1016 */
1017     long GetNbRows();
1018 /*!
1019    Returns the number of columns of the table.
1020 */
1021     long GetNbColumns();
1022
1023     // operations with rows
1024 /*!
1025    Adds a row to the end of the table.
1026 */
1027     void AddRow(in DoubleSeq theData) raises(IncorrectArgumentLength);
1028 /*!
1029    Sets the values of all elements of the row.
1030 */
1031     void SetRow(in long theRow, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
1032 /*!
1033    Returns the row of the table.
1034 */
1035     DoubleSeq GetRow(in long theRow) raises(IncorrectIndex);
1036
1037     // operations with columns
1038 /*!
1039    Adds a column to the end of the table.
1040 */
1041     void AddColumn(in DoubleSeq theData) raises(IncorrectArgumentLength);
1042 /*!
1043    Sets the values of all elements of the column.
1044 */
1045     void SetColumn(in long theColumn, in DoubleSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
1046 /*!
1047    Returns the column of the table.
1048 */
1049     DoubleSeq GetColumn(in long theColumn) raises(IncorrectIndex);
1050
1051     // operations with elements
1052 /*!
1053     Puts a value in the table.
1054     \param theRow      The row, where the value will be placed.
1055     \param theColumn   The column, where the value will be placed.
1056 */
1057     void PutValue(in double theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
1058 /*!
1059     Returns True if there is a value in the table.
1060     \param theRow      The row containing the value
1061     \param theColumn   The column containing the value
1062 */
1063     boolean HasValue(in long theRow, in long theColumn);
1064 /*!
1065     Returns the value from the table.
1066     \param theRow      The row containing the value
1067     \param theColumn   The column containing the value
1068 */
1069     double GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
1070
1071 /*!
1072     Sets the max number of colums in the table.
1073     \note It'd better to set it before filling the table.
1074 */
1075     void SetNbColumns(in long theNbColumns);
1076
1077 /*!
1078     Returns the indices of the row where the values are defined.
1079 */
1080     LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
1081     // operations with files
1082 /*!
1083    Reads a table from a file.
1084 */
1085     boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
1086 /*!
1087    Saves a table into a file.
1088 */
1089     SALOMEDS::TMPFile SaveToFile();
1090   };
1091
1092
1093
1094   //==========================================================================
1095 /*! \brief %AttributeTableOfString interface
1096
1097    This attribute allows to store a table of strings (indexing from 1 like in CASCADE)
1098     and string titles of this table, of each row, of each column.
1099 <BR><VAR>See also <A href=exemple/Example21.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
1100
1101 */
1102   //==========================================================================
1103
1104   interface AttributeTableOfString : GenericAttribute
1105   {
1106 /*!
1107    This exception is raised when an incorrect index is passed as parameter.
1108 */
1109     exception IncorrectIndex {};
1110 /*!
1111    This exception is raised when an incorrect length of the argument is passed as parameter.
1112 */
1113     exception IncorrectArgumentLength {};
1114
1115     // titles: for table, for each row, for each column
1116 /*!
1117    Sets the title of the table.
1118 */
1119     void SetTitle(in string theTitle);
1120 /*!
1121   Returns the title of the table.
1122 */
1123     string GetTitle();
1124 /*!
1125    Sets the title of a row with a definite index.
1126 */
1127     void SetRowTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
1128 /*!
1129    Sets the titles for all rows of the table.
1130 */
1131     void SetRowTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
1132 /*!
1133    Returns the titles of all rows of the table.
1134 */
1135     StringSeq GetRowTitles();
1136 /*!
1137    Sets the title of a column with a definite index.
1138 */
1139     void SetColumnTitle(in long theIndex, in string theTitle) raises(IncorrectIndex);
1140 /*!
1141    Sets the titles for all columns of the table.
1142 */
1143     void SetColumnTitles(in StringSeq theTitles) raises(IncorrectArgumentLength);
1144 /*!
1145    Returns the titles of all columns of the table.
1146 */
1147     StringSeq GetColumnTitles();
1148
1149     //Rows units
1150 /*!
1151    Sets the unit of a row with a definite index.
1152 */
1153     void SetRowUnit(in long theIndex, in string theUnit) raises(IncorrectIndex);
1154 /*!
1155    Sets the units for all rows of the table.
1156 */
1157     void SetRowUnits(in StringSeq theUnits) raises(IncorrectArgumentLength);
1158 /*!
1159    Returns the units of all rows of the table.
1160 */
1161     StringSeq GetRowUnits();
1162
1163     // table information
1164 /*!
1165    Returns the number of rows of the table.
1166 */
1167     long GetNbRows();
1168 /*!
1169    Returns the number of columns of the table.
1170 */
1171     long GetNbColumns();
1172
1173     // operations with rows
1174 /*!
1175    Adds a row to the end of the table.
1176 */
1177     void AddRow(in StringSeq theData) raises(IncorrectArgumentLength);
1178 /*!
1179    Sets the values of all elements of the row.
1180 */
1181     void SetRow(in long theRow, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
1182 /*!
1183    Returns the row of the table.
1184 */
1185     StringSeq GetRow(in long theRow) raises(IncorrectIndex);
1186
1187     // operations with columns
1188 /*!
1189    Adds a column to the end of the table.
1190 */
1191     void AddColumn(in StringSeq theData) raises(IncorrectArgumentLength);
1192 /*!
1193    Sets the values of all elements of the column.
1194 */
1195     void SetColumn(in long theColumn, in StringSeq theData) raises(IncorrectArgumentLength, IncorrectIndex);
1196 /*!
1197    Returns the column of the table.
1198 */
1199     StringSeq GetColumn(in long theColumn) raises(IncorrectIndex);
1200
1201     // operations with elements
1202 /*!
1203     Puts a value in the table.
1204     \param theRow      The row, where the value will be placed.
1205     \param theColumn   The column, where the value will be placed.
1206 */
1207     void PutValue(in string theValue, in long theRow, in long theColumn) raises(IncorrectIndex);
1208 /*!
1209     Returns True if there is a value in the table.
1210     \param theRow      The row containing the value
1211     \param theColumn   The column containing the value
1212 */
1213     boolean HasValue(in long theRow, in long theColumn);
1214 /*!
1215     Returns the value from the table.
1216     \param theRow      The row containing the value
1217     \param theColumn   The column containing the value
1218 */
1219     string GetValue(in long theRow, in long theColumn) raises(IncorrectIndex);
1220
1221 /*!
1222     Sets the max number of colums in the table.
1223     \note It'd better to set it before filling the table.
1224 */
1225     void SetNbColumns(in long theNbColumns);
1226
1227 /*!
1228     Returns the indices of the row where the values are defined.
1229 */
1230     LongSeq GetRowSetIndices(in long theRow) raises(IncorrectIndex);
1231     // operations with files
1232 /*!
1233    Reads a table from a file.
1234 */
1235     boolean ReadFromFile(in SALOMEDS::TMPFile theStream);
1236 /*!
1237    Saves a table into a file.
1238 */
1239     SALOMEDS::TMPFile SaveToFile();
1240   };
1241
1242
1243   //==========================================================================
1244 /*! \brief %AttributeStudyProperties interface
1245
1246    This attribute allows to store study properties: user name, creation date, creation
1247    mode, modified flag, locked flag.
1248 <BR><VAR>See also <A href=exemple/Example20.html> an example </A> of usage of these methods in batchmode of %SALOME application.</VAR>
1249
1250 */
1251   //==========================================================================
1252
1253   interface AttributeStudyProperties : GenericAttribute
1254   {
1255 /*!
1256    Sets the name of the author of the %Study
1257 */
1258     void SetUserName(in string theName);
1259 /*!
1260      Returns the name of the user of the %Study.
1261     \note <BR>It returns a null string, if user name is not set
1262 */
1263     string GetUserName();
1264 /*!
1265    Sets creation date of the %Study.
1266 */
1267     void SetCreationDate(in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
1268 /*!
1269      Returns creation date of the %Study and True if creation date is set.
1270 */
1271     boolean GetCreationDate(out long theMinute, out long theHour, out long theDay, out long theMonth, out long theYear);
1272 /*!
1273    Sets creation mode of the %Study.
1274    \note <BR>Creation mode must be: "from scratch" or "copy from".
1275 */
1276     void SetCreationMode(in string theMode);
1277 /*!
1278    Returns creation mode: "from scratch", "copy from", or null string
1279    if creation mode is not set
1280 */
1281     string GetCreationMode();
1282 /*!
1283    Sets the number of transactions executed after the last saving of the document.
1284 */
1285     void SetModified(in long theModified);
1286 /*!
1287     Returns True, if the document has been modified and not saved.
1288 */
1289     boolean IsModified();
1290 /*!
1291   Returns the number of transactions executed after the last saving of the document.
1292 */
1293     long GetModified();
1294 /*!
1295     Sets the document locked for modifications if <VAR>theLocked</VAR> is True.
1296 */
1297     void SetLocked(in boolean theLocked);
1298 /*!
1299     Returns True if the document is locked for modifications.
1300 */
1301     boolean IsLocked();
1302 /*!
1303    Appends modification parameters to the modifications list.
1304 */
1305     void SetModification(in string theName, in long theMinute, in long theHour, in long theDay, in long theMonth, in long theYear);
1306 /*!
1307    Returns a list of mosdifiers user names, modification dates.
1308    /note <BR>If <VAR>theWithCreator</VAR> is True, then the output list will also contain the name of the author and the date of creation.
1309 */
1310     void GetModificationsList(out StringSeq theNames, out LongSeq theMinutes, out LongSeq theHours, out LongSeq theDays, out LongSeq theMonths, out LongSeq theYears, in boolean theWithCreator);
1311   };
1312   //==========================================================================
1313 /*! \brief %AttributePythonObject interface
1314
1315     Attribute allowing to store pyton objects as a sequence of chars.
1316 */
1317   //==========================================================================
1318
1319   interface AttributePythonObject : GenericAttribute
1320   {
1321 /*!
1322    Sets in the attribute a Python object converted into a sequence of chars.
1323    \param theSequence    A sequence of chars.
1324    \param IsScript       Defines (if True) whether this sequence of chars is a Python script.
1325 */
1326     void SetObject(in string theSequence, in boolean IsScript);
1327 /*!
1328     Returns a Python object stored in the attribute as a sequence of chars.
1329 */
1330     string GetObject();
1331 /*!
1332     Returns True if the sequence of bytes stored in the attribute corresponds
1333     to a Python script.
1334 */
1335     boolean IsScript();
1336   };
1337   //==========================================================================
1338 /*! \brief %AttributeParameter interface
1339
1340     Attribute is a universal container of basic types
1341 */
1342   //==========================================================================
1343   interface AttributeParameter : GenericAttribute
1344   {
1345 /*!
1346   Associates a integer value with the ID
1347   \param theID        An ID of a parameter.
1348   \param theValue     A value of the parameter
1349 */
1350     void SetInt(in string theID, in long theValue);
1351 /*!
1352   Returns a int value associated with the given ID
1353   \param theID        An ID of a parameter.
1354 */
1355     long GetInt(in string theID);
1356
1357 /*!
1358   Associates a real value with the ID
1359   \param theID        An ID of a parameter.
1360   \param theValue     A value of the parameter
1361 */
1362     void SetReal(in string theID, in double theValue);
1363 /*!
1364   Returns a real value associated with the given ID
1365   \param theID        An ID of a parameter.
1366 */
1367     double GetReal(in string theID);
1368
1369 /*!
1370   Associates a string value with the ID
1371   \param theID        An ID of a parameter.
1372   \param theValue     A value of the parameter
1373 */
1374     void SetString(in string theID, in string theValue);
1375 /*!
1376   Returns a string value associated with the given ID
1377   \param theID        An ID of a parameter.
1378 */
1379     string GetString(in string theID);
1380   
1381 /*!
1382   Associates a boolean value with the ID
1383   \param theID        An ID of a parameter.
1384   \param theValue     A value of the parameter
1385 */
1386     void SetBool(in string theID, in boolean theValue);
1387 /*!
1388   Returns a boolean value associated with the given ID
1389   \param theID        An ID of a parameter.
1390 */
1391     boolean GetBool(in string theID);
1392   
1393 /*!
1394   Associates an array of real values with the ID
1395   \param theID        An ID of a parameter.
1396   \param theArray     The array of real values
1397 */
1398     void SetRealArray(in string theID, in DoubleSeq theArray);
1399 /*!
1400   Returns an array of real values associated with the ID
1401   \param theID        An ID of a parameter.
1402 */
1403     DoubleSeq GetRealArray(in string theID);
1404
1405 /*!
1406   Associates an array of integer values with the ID
1407   \param theID        An ID of a parameter.
1408   \param theArray     The array of integer values
1409 */
1410     void SetIntArray(in string theID, in LongSeq theArray);
1411 /*!
1412   Returns an array of integer values associated with the ID
1413   \param theID        An ID of a parameter.
1414 */
1415     LongSeq GetIntArray(in string theID);
1416
1417 /*!
1418   Associates an array of string values with the ID
1419   \param theID        An ID of a parameter.
1420   \param theArray     The array of string values
1421 */
1422     void SetStrArray(in string theID, in StringSeq theArray);
1423 /*!
1424   Returns an array of string values associated with the ID
1425   \param theID        An ID of a parameter.
1426 */
1427     StringSeq GetStrArray(in string theID);
1428 /*!
1429   Returns True if for the ID of given type was assigned a value in the attribute
1430   \param theID        An ID of a parameter.
1431   \param theType      A type of parameter [0(Int), 1(Real), 2(Boolean), 3(String), 4(RealArray), 5(IntArray), 6(StrArray)].
1432 */
1433     boolean IsSet(in string theID, in long theType);
1434 /*!
1435   Removes a parameter with given ID and Type, returns True if succeded
1436   \param theID        An ID of a parameter.
1437   \param theType      A type of parameter [0(Int), 1(Real), 2(Boolean), 3(String), 4(RealArray), 5(IntArray), 6(StrArray)].
1438 */
1439     boolean RemoveID(in string theID, in long theType);
1440 /*!
1441    Returns a father attribute of this attribute
1442 */
1443     AttributeParameter GetFather();
1444 /*!
1445    Returns True if this attribute has a father attribute
1446 */
1447     boolean HasFather();
1448 /*!
1449    Returns True if this attribute is a root attribute
1450 */
1451     boolean IsRoot();
1452 /*!
1453    Clears the content of the attribute
1454 */
1455     void Clear();
1456 /*!   
1457   Returns a sequence of ID's of the give type
1458   \param theType      A type of parameter [0(Int), 1(Real), 2(Boolean), 3(String), 4(RealArray), 5(IntArray), 6(StrArray)].
1459  */ 
1460     StringSeq GetIDs(in long theType);
1461   };
1462 };
1463 #endif