def __registry_value_object_from_dict(cls, registry_value_dict): registry_value_obj = win_registry_key_binding.RegistryValueType() for key, value in registry_value_dict.items(): if key == 'name' and utils.test_value(value): registry_value_obj.set_Name(Base_Object_Attribute.object_from_dict(common_types_binding.StringObjectAttributeType(datatype='String'),value)) elif key == 'data' and utils.test_value(value): registry_value_obj.set_Data(Base_Object_Attribute.object_from_dict(common_types_binding.StringObjectAttributeType(datatype='String'),value)) elif key == 'datatype' and utils.test_value(value): registry_value_obj.set_Datatype(Base_Object_Attribute.object_from_dict(common_types_binding.StringObjectAttributeType(datatype='String'),value)) elif key == 'byte_runs' : ByteRuns.object_from_dict(value) return registry_value_obj
def object_from_dict(cls, registry_key_dict): """Create the Win Registry Key Object object representation from an input dictionary""" registry_key_obj = win_registry_key_binding.WindowsRegistryKeyObjectType() registry_key_obj.set_anyAttributes_({'xsi:type' : 'WinRegistryKeyObj:WindowsRegistryKeyObjectType'}) registry_value = win_registry_key_binding.RegistryValueType() for key, value in registry_key_dict.items(): if key == 'hive' and utils.test_value(value): registry_key_obj.set_Hive(Base_Object_Attribute.object_from_dict(common_types_binding.StringObjectAttributeType(datatype='String'), value)) elif key == 'key' and utils.test_value(value): registry_key_obj.set_Key(Base_Object_Attribute.object_from_dict(common_types_binding.StringObjectAttributeType(datatype='String'), value)) elif key == 'number_values' and utils.test_value(value): registry_key_obj.set_Number_Values(Base_Object_Attribute.object_from_dict(common_types_binding.UnsignedIntegerObjectAttributeType(datatype='UnsignedInteger'), value)) elif key == 'values' : registry_values_obj = win_registry_key_binding.RegistryValuesType() for registry_value_dict in value: registry_value_obj = cls.__registry_value_object_from_dict(registry_value_dict) if registry_value_obj.hasContent_() : registry_values_obj.add_Value(registry_value_obj) if registry_values_obj.hasContent_() : registry_key_obj.set_Values(registry_values_obj) elif key == 'modified_time' and utils.test_value(value): registry_key_obj.set_Modified_Time(Base_Object_Attribute.object_from_dict(common_types_binding.DateTimeObjectAttributeType(datatype='DateTime'), value)) elif key == 'creator_username' and utils.test_value(value): registry_key_obj.set_Creator_Username(Base_Object_Attribute.object_from_dict(common_types_binding.StringObjectAttributeType(datatype='String'), value)) elif key == 'handle_list': registry_key_obj.set_Handle_List(Win_Handle_List.object_from_dict(value)) elif key == 'number_subkeys' and utils.test_value(value): registry_key_obj.set_Number_Subkeys(Base_Object_Attribute.object_from_dict(common_types_binding.UnsignedIntegerObjectAttributeType(datatype='UnsignedInteger'), value)) elif key == 'subkeys' : subkeys_obj = win_registry_key_binding.RegistrySubkeysType() for sub_registry_key_dict in value: sub_registry_key_obj = cls.object_from_dict(sub_registry_key_dict) if sub_registry_key_obj.hasContent_() : subkeys_obj.add_Subkey(sub_registry_key_obj) if subkeys_obj.hasContent_() : registry_key_obj.set_Subkeys(subkeys_obj) elif key == 'byte_runs' : registry_key_obj.set_Byte_Runs(ByteRuns.object_from_dict(value)) return registry_key_obj