Salome HOME
Siman codebase is refactored. Spring beans are introduced in the context.
[tools/siman.git] / Workspace / Siman-Common / src / org / splat / dal / bo / som / VersionsRelation.java
1 package org.splat.dal.bo.som;
2 /**
3  * 
4  * @author    Daniel Brunier-Coulin
5  * @copyright OPEN CASCADE 2012
6  */
7
8 import org.splat.dal.bo.kernel.Persistent;
9 import org.splat.dal.bo.kernel.Relation;
10
11
12 public class VersionsRelation extends Relation {
13
14 //  Persistent field
15     private  Document refer;
16
17 //  Transient fields
18     private  boolean  got;              // For optimizing getDescription()
19     private  String   description;      // Null if this is not described
20
21 //  ==============================================================================================================================
22 //  Constructors
23 //  ==============================================================================================================================
24
25 //  Database fetch constructor
26     protected VersionsRelation () {
27 //  -----------------------------
28       got         = false;
29       description = null;
30     }
31 //  Initialization constructors
32     public VersionsRelation (Document from, Document to) {
33 //  -------------------------------------------------------
34       super(from);
35       this.refer       = to;
36       this.got         = true;
37       this.description = null;          // Conversion not described
38     }
39     public VersionsRelation (Document from, Document to, String description) {
40 //  ---------------------------------------------------------------------------
41       super(from);
42       this.refer       = to;
43       this.got         = true;
44       this.description = description;   // May be null
45       if (description != null) this.setAttribute( new DescriptionAttribute(this, description) );
46     }
47
48 //  ==============================================================================================================================
49 //  Public member functions
50 //  ==============================================================================================================================
51
52     public String getDescription () {
53 //  -------------------------------
54       if (!got) {
55         DescriptionAttribute field = (DescriptionAttribute)this.getAttribute(DescriptionAttribute.class);
56         if (field != null) description = field.getValue();
57         got = true;                     // Don't need to be modified later as set and remove attribute functions are private to this class
58       }
59       return description;               // May be null
60     }
61
62     public Document getTo () {
63 //  -------------------------
64       return refer;
65     }
66     protected void setTo (Persistent to) {
67 //  ------------------------------------
68       refer = (Document)to;
69     }
70 }