| 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; | 
|   *] | 
| } |