| Quintiq file version 2.0 | 
| #parent: #root | 
| DeclarativeReferenceRelation CalcSnapshotComponent | 
| { | 
|   #keys: '1[141860.3.668934112]' | 
|   Expression: | 
|   [* | 
|     snapshot := null( LibOpt_SnapshotComponent ); | 
|      | 
|     // The LibOpt_SnapshotComponent.SnapshotComponent relation shouldn't include the LibOpt_SnapshotComponent itself | 
|     if( not this.istype( LibOpt_SnapshotComponent ) )  | 
|     { | 
|       snapshotparent := this.Parent(); | 
|       if( snapshotparent.istype( LibOpt_SnapshotComponent ) ) | 
|       { | 
|         snapshot := snapshotparent.astype( LibOpt_SnapshotComponent ); | 
|       } | 
|       else | 
|       { | 
|         snapshot := guard( snapshotparent.SnapshotComponent(), snapshot ); | 
|       } | 
|     } | 
|      | 
|     return snapshot; | 
|   *] | 
|   Relation: SnapshotComponent | 
| } |