- library: '&IDL_MochaBaseSystem;'
  instances:
  - returnAttributeMethodBinding: '&IDMB_User__get__Preferred_Display_Name_Formatted;'
    executesMethod: '&IDM_User__get__Preferred_Display_Name_Formatted;'

  # - buildAttributeMethod: '&IDM_User__get__Preferred_Display_Name;'
  #   forClassId: '&IDC_User;'
  #   returnsAttributeId: '&IDA_Value;'
  #   verb: 'get'
  #   name: 'Preferred Display Name'
  #   initialValue: 'Testing Preferred Display Name'

  - workSet: '&IDI_WorkSet_PreferredDisplayName;'
    name: 'Preferred Display Name'
    validClasses:
    - instance: '&IDC_PersonName;'

  - returnInstanceSetMethodBinding: '&IDMB_User__get__Person;'
    executesMethod: '&IDM_User__get__Person;'

  - getReferencedInstanceSetMethod: '&IDM_User__get__Person;'
    forClassId: '&IDC_User;'
    returnsWorkSetId: '&IDI_WorkSet_PersonSingular;'
    verb: 'get'
    name: 'Person'
    accessModifierId: '&IDI_AccessModifier_RootA2;'
    referenceInstanceSet: '&IDC_User;'
    answerInstanceSet: '&IDR_System_Account__for__Person;'

  - returnInstanceSetMethodBinding: '&IDMB_User__get__Preferred_Display_Name;'
    executesMethod: '&IDM_User__get__Preferred_Display_Name;'

  # User@get Preferred Display Name
  - getReferencedInstanceSetMethod: '&IDM_User__get__Preferred_Display_Name;'
    forClassId: '&IDC_User;'
    returnsWorkSetId: '&IDI_WorkSet_PreferredDisplayName;'
    verb: 'get'
    name: 'Preferred Display Name'
    accessModifierId: '&IDI_AccessModifier_RootA2;'
    referenceInstanceSet: '&IDMB_User__get__Person;'
    answerInstanceSet: '&IDR_Person__has__Person_Name;'
    singular: yes
    
  - getReferencedAttributeMethod: '&IDM_User__get__Preferred_Display_Name_-_Given_Name;'
    forClassId: '&IDC_User;'
    returnsAttributeId: '&IDA_Value;'
    verb: 'get'
    name: 'Preferred Display Name - Given Name'
    accessModifierId: '&IDI_AccessModifier_RootA2;'
    referenceInstanceSet: '&IDMB_User__get__Preferred_Display_Name;'
    answerAttribute: '&IDMB_Person_Name__get__Given_Name;'

  - returnAttributeMethodBinding: '&IDMB_User__get__Preferred_Display_Name_-_Given_Name;'
    executesMethod: '&IDM_User__get__Preferred_Display_Name_-_Given_Name;'

  - getReferencedAttributeMethod: '&IDM_User__get__Preferred_Display_Name_-_Family_Name;'
    forClassId: '&IDC_User;'
    returnsAttributeId: '&IDA_Value;'
    verb: 'get'
    name: 'Preferred Display Name - Family Name'
    accessModifierId: '&IDI_AccessModifier_RootA2;'
    referenceInstanceSet: '&IDMB_User__get__Preferred_Display_Name;'
    answerAttribute: '&IDMB_Person_Name__get__Family_Name;'

  - returnAttributeMethodBinding: '&IDMB_User__get__Preferred_Display_Name_-_Family_Name;'
    executesMethod: '&IDM_User__get__Preferred_Display_Name_-_Family_Name;'

  - buildAttributeMethod: '&IDM_User__get__Preferred_Display_Name_Formatted;'
    forClassId: '&IDC_User;'
    verb: 'get'
    name: 'Preferred Display Name (Formatted)'
    accessModifierId: '&IDI_AccessModifier_RootA2;'
    returnsAttributeId: '&IDA_Value;'
    initialValue: ''
    buildsWithAttributes:
    - order: a
      executes: '&IDMB_User__get__Preferred_Display_Name_-_Given_Name;'
    - order: b
      executes: '&IDM_Common_Text__get__Single_Space;'
    - order: c
      executes: '&IDMB_User__get__Preferred_Display_Name_-_Family_Name;'