Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method CreateObjects ( 
 | 
  NamedValue nv, 
 | 
  shadow[LibOpt_UIOwner] owner, 
 | 
  String prefix, 
 | 
  NamedValueTree nvt, 
 | 
  structured[shadow[LibOpt_BT_UISetting]] existing 
 | 
) id:Method_FormSettings_CreateObjects 
 | 
{ 
 | 
  #keys: '[139544.1.1263142282]' 
 | 
  Body: 
 | 
  [* 
 | 
    children := nv.Children(); 
 | 
     
 | 
    name := nv.Name(); 
 | 
    if( prefix <> '' ) 
 | 
    { 
 | 
      name := prefix + '.' + name; 
 | 
    } 
 | 
     
 | 
    if( name <> '' and LibOpt_Utility::IsSettingsNode( nv ) ) 
 | 
    { 
 | 
      // Try repurposing an exinsting setting object. 
 | 
      setting := select( existing, Elements, elem, elem.Path() = name ); 
 | 
      if( isnull( setting ) ) 
 | 
      { 
 | 
        setting := owner.UISetting( relnew, Path := name ); 
 | 
      } 
 | 
      else 
 | 
      { 
 | 
        existing.Remove( setting ); 
 | 
      } 
 | 
      setting.ValueRepresentation( this.GetValueRepresentation( nv ) ); 
 | 
      definedby_node := guard( nv.Child( nvt.GetHandle( LibSE_SettingsContainer::Handle_Metadata() ) ) 
 | 
                                 .Child( nvt.GetHandle( LibSE_SettingsContainer::Handle_DefinedBy() ) ), 
 | 
                               null( NamedValue ) ); 
 | 
      if( not isnull( definedby_node ) ) 
 | 
      { 
 | 
        setting.DefinedBy( definedby_node.GetValueAsString() ); 
 | 
      } 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      traverse( children, Elements, child ) 
 | 
      { 
 | 
        this.CreateObjects( child, owner, name, nvt, existing ); 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |