| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetObjectsFromNVT (NamedValueTree nvt_i) as owning LibDMF_SetObjects | 
| { | 
|   Description: 'Get the instances of (the subtypes of) SetObject from the NVT.' | 
|   TextBody: | 
|   [* | 
|     objects    := construct( LibDMF_SetObjects ); | 
|     objectType := this.GetTypeOfSetObject(); | 
|      | 
|     batchBody  := LibInt_NvtAccessor::FirstChildNamed( nvt_i, nvt_i.Root(), 'Body' ); | 
|      | 
|     traverse( batchBody.Children(), Elements, child ) | 
|     { | 
|       childBody := LibInt_NvtAccessor::FirstChildNamed( nvt_i, child, 'Body' ); | 
|       children  := childBody.Children(); | 
|      | 
|       if( children.Size() > 0 ) | 
|       { | 
|         objectNode := children.Element( 0 ); | 
|      | 
|         object := NamedValueTreeIO::ImportObject( nvt_i, objectNode, objectType ).astype( LibDMF_SetObject ); | 
|      | 
|         objects.Add( object ); | 
|      | 
|         // The object must also be added to an owning relation, otherwise it cannot be referenced outside of this method. | 
|         this.AddSetObject( &object ); | 
|       } | 
|     } | 
|      | 
|     return &objects; | 
|   *] | 
| } |