protected void finish(HomeAutomationCompactDeviceSpecifierJSON result) { if (fieldGeneratorSpecifier.have_value) { result.setSpecifier(fieldGeneratorSpecifier.value); fieldGeneratorSpecifier.have_value = false; } else if ((!(result.hasSpecifier())) && !allow_incomplete) { error("When parsing the object for %what%, the \"Specifier\" field was missing."); } if (fieldGeneratorGroupItems.have_value) { result.initGroupItems(); int count = fieldGeneratorGroupItems.value.Count; for (int num = 0; num < count; ++num) { result.appendGroupItems(fieldGeneratorGroupItems.value[num]); } fieldGeneratorGroupItems.value.Clear(); fieldGeneratorGroupItems.have_value = false; } if (fieldGeneratorDeviceItems.have_value) { result.initDeviceItems(); int count = fieldGeneratorDeviceItems.value.Count; for (int num = 0; num < count; ++num) { result.appendDeviceItems(fieldGeneratorDeviceItems.value[num]); } fieldGeneratorDeviceItems.value.Clear(); fieldGeneratorDeviceItems.have_value = false; } if (fieldGeneratorExcludedGroupItems.have_value) { result.initExcludedGroupItems(); int count = fieldGeneratorExcludedGroupItems.value.Count; for (int num = 0; num < count; ++num) { result.appendExcludedGroupItems(fieldGeneratorExcludedGroupItems.value[num]); } fieldGeneratorExcludedGroupItems.value.Clear(); fieldGeneratorExcludedGroupItems.have_value = false; } if (fieldGeneratorExcludedDeviceItems.have_value) { result.initExcludedDeviceItems(); int count = fieldGeneratorExcludedDeviceItems.value.Count; for (int num = 0; num < count; ++num) { result.appendExcludedDeviceItems(fieldGeneratorExcludedDeviceItems.value[num]); } fieldGeneratorExcludedDeviceItems.value.Clear(); fieldGeneratorExcludedDeviceItems.have_value = false; } if (fieldGeneratorType.have_value) { result.setType(fieldGeneratorType.value); fieldGeneratorType.have_value = false; } if (fieldGeneratorHint.have_value) { result.setHint(fieldGeneratorHint.value); fieldGeneratorHint.have_value = false; } if (fieldGeneratorUnambiguousGroups.have_value) { result.setUnambiguousGroups(fieldGeneratorUnambiguousGroups.value); fieldGeneratorUnambiguousGroups.have_value = false; } if (fieldGeneratorUnambiguousDevices.have_value) { result.setUnambiguousDevices(fieldGeneratorUnambiguousDevices.value); fieldGeneratorUnambiguousDevices.have_value = false; } }