Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method GetInterests (Boolean sendDeltas_i, DateTime deltaStart_i) as owning LibDMF_Interests 
 | 
{ 
 | 
  Description: 'Get the Interests of a System.' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // sendDeltas_i = FALSE and startOfDeltas_i = MinDateTime when all data must be send. 
 | 
     
 | 
    // filter interests which exist in both set type and set 
 | 
    setInterests     := selectset( this, Interest, interest, 
 | 
                                   interest.istype( LibDMF_SetInterest ), 
 | 
                                   interest.GetHasDelta( ifexpr( sendDeltas_i, interest.LastSent(), deltaStart_i ) ) ); 
 | 
    setTypeInterests := selectset( this, Interest, interest, 
 | 
                                   interest.istype( LibDMF_SetTypeInterest ), 
 | 
                                   interest.GetHasDelta( ifexpr( sendDeltas_i, interest.LastSent(), deltaStart_i ) ) ); 
 | 
     
 | 
    // combine the interests without the existing interest on set level 
 | 
    // collect set type before set, interest at set type level comes first 
 | 
    interests := &setTypeInterests; 
 | 
    traverse( setInterests, Elements, si, 
 | 
              not exists( interests, Elements.Data.astype( LibDMF_SetType ), setType, 
 | 
                          setType = si.Data().astype( LibDMF_Set ).SetType() ) ) 
 | 
    { 
 | 
      interests.Add( si ); 
 | 
    } 
 | 
     
 | 
    return &interests; 
 | 
  *] 
 | 
} 
 |