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 
 | 
} 
 |