Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod AddMetadata (NamedValueTree nvt, NamedValue nv, MdlModeledAttrElement attr,  
 | 
  Type type) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    metadata := nv.AddChild( nvt.GetHandle( LibSE_SettingsContainer::Handle_Metadata() ) ); 
 | 
    description := metadata.AddChild( nvt.GetHandle( LibSE_SettingsContainer::Handle_Description() ) ); 
 | 
    description.SetValue( attr.ModeledAttribute().Description() ); 
 | 
     
 | 
    default_value := null( ModeledDefaultValue ); 
 | 
    default_value_type := type; 
 | 
    while( not isnull( default_value_type ) and isnull( default_value ) ) 
 | 
    { 
 | 
      default_value := guard( attr.ModeledAttribute().FindDefaultValue( default_value_type ), null( ModeledDefaultValue ) ); 
 | 
      default_value_type := default_value_type.Parent(); 
 | 
    } 
 | 
     
 | 
    defined_by := Translations::LibSE_SettingsContainer_DefinedBy_QuillDefaultValue(); 
 | 
    if( not isnull( default_value ) ) 
 | 
    { 
 | 
      default_value_node := metadata.AddChild( nvt.GetHandle( LibSE_SettingsContainer::Handle_DefaultValue() ) ); 
 | 
      type := attr.ValueType(); 
 | 
      if( type = typeof( Boolean ) ) 
 | 
      { 
 | 
        default_value_node.SetValue( StringToBoolean::ISOConverter().Convert( default_value.ISOValue() ) ); 
 | 
      } 
 | 
      else if( type = typeof( Char ) ) 
 | 
      { 
 | 
        default_value_node.SetValue( StringToChar::ISOConverter().Convert( default_value.ISOValue() ) ); 
 | 
      } 
 | 
      else if( type = typeof( Date ) ) 
 | 
      { 
 | 
        default_value_node.SetValue( StringToDate::ISOConverter().Convert( default_value.ISOValue() ) ); 
 | 
      } 
 | 
      else if( type = typeof( DateTime ) ) 
 | 
      { 
 | 
        default_value_node.SetValue( StringToDateTime::ISOConverter().Convert( default_value.ISOValue() ) ); 
 | 
      } 
 | 
      else if( type = typeof( Duration ) ) 
 | 
      { 
 | 
        default_value_node.SetValue( StringToDuration::ISOConverter().Convert( default_value.ISOValue() ) ); 
 | 
      } 
 | 
      else if( type = typeof( Key ) ) 
 | 
      { 
 | 
        default_value_node.SetValue( StringToKey::ISOConverter().Convert( default_value.ISOValue() ) ); 
 | 
      } 
 | 
      else if( type = typeof( Number ) ) 
 | 
      { 
 | 
        default_value_node.SetValue( StringToNumber::ISOConverter().Convert( default_value.ISOValue() ) ); 
 | 
      } 
 | 
      else if( type = typeof( Real ) ) 
 | 
      { 
 | 
        default_value_node.SetValue( StringToReal::ISOConverter().Convert( default_value.ISOValue() ) ); 
 | 
      } 
 | 
      else if( type = typeof( String ) ) 
 | 
      { 
 | 
        default_value_node.SetValue( default_value.ISOValue() ); 
 | 
      } 
 | 
      defined_by := Translations::LibSE_SettingsContainer_DefinedBy_EditorDefaultValue(); 
 | 
    } 
 | 
     
 | 
    defined_by_nv := metadata.AddChild( nvt.GetHandle( LibSE_SettingsContainer::Handle_DefinedBy() ) ); 
 | 
    defined_by_nv.SetValue( defined_by ); 
 | 
  *] 
 | 
} 
 |