Handle default values for array[enum] properties

Summary:
- Add logic to process array[enum] default values
in settings_manager.mako.hpp.
- Ensures correct C++ enum initializer list is generated
for array[enum] properties.

Motivate:
- Some properties, require array[enum] support to match
YAML configuration.

Example YAML input:
/xyz/openbmc_project/control/host{}/boot:
  - Interface: xyz.openbmc_project.Control.Boot.Source
    Properties:
      BootOrder:
        Default: [Source::Sources::Disk,Source::Sources::Network,
                  Source::Sources::RemovableMedia]

Test Plan:
- Build code : pass
- Tested on YV4 system - Pass

Change-Id: I3380878ebea7febaf5b881c86b46d48d6df1150d
Signed-off-by: Zoey YJ Chung <zoey.yj.chung.wiwynn@gmail.com>
diff --git a/settings_manager.mako.hpp b/settings_manager.mako.hpp
index 5d07b49..3570119 100644
--- a/settings_manager.mako.hpp
+++ b/settings_manager.mako.hpp
@@ -33,6 +33,18 @@
             ns = get_setting_sdbusplus_type(interface)
             i = ns.rfind('::')
             default_value = "{}::{}".format(ns[:i], default_value)
+            return default_value
+
+    # Handle default values for properties of type array[enum].
+    if isinstance(default_value, list):
+        ns = get_setting_sdbusplus_type(interface)
+        i = ns.rfind('::')
+        elems = []
+        for val in default_value:
+            if isinstance(val, str) and not val.startswith('"') and '::' in val:
+                elems.append("{}::{}".format(ns[:i], val))
+        default_value = '{' + ', '.join(elems) + '}'
+        return default_value
 
     return default_value
 %>\