protected override void finish()
        {
            CalendarReminderJSON result = new CalendarReminderJSON();

            Debug.Assert(result != null);
            finish(result);
            handle_result(result);
        }
 protected void finish(CalendarReminderJSON result)
 {
     if (fieldGeneratorMethod.have_value)
     {
         result.setMethod(fieldGeneratorMethod.value);
         fieldGeneratorMethod.have_value = false;
     }
     if (fieldGeneratorSecondsBeforeStartOfEvent.have_value)
     {
         result.setSecondsBeforeStartOfEvent(fieldGeneratorSecondsBeforeStartOfEvent.value);
         fieldGeneratorSecondsBeforeStartOfEvent.have_value = false;
     }
     else if ((!(result.hasSecondsBeforeStartOfEvent())) && !allow_incomplete)
     {
         error("When parsing the object for %what%, the \"SecondsBeforeStartOfEvent\" field was missing.");
     }
 }
 protected override void handle_result(CalendarReminderJSON result)
 {
     top.value.Add(result);
 }
        protected override void handle_result(CalendarReminderJSON result)
        {
//@@@            Debug.Assert(!have_value);
            have_value = true;
            value      = result;
        }
 protected abstract void handle_result(CalendarReminderJSON new_result);