public void setLatestListType(TypeLatestListTypeKnownValues new_value)
    {
        TypeLatestListType new_full_value = new TypeLatestListType();

        Debug.Assert(new_value != TypeLatestListTypeKnownValues.LatestListType__none);
        new_full_value.in_known_list = true;
        new_full_value.list_value    = new_value;
        setLatestListType(new_full_value);
    }
    private void  fromJSONLatestListType(JSONValue json_value, bool ignore_extras)
    {
        Debug.Assert(json_value != null);
        JSONStringValue json_string = json_value.string_value();

        if (json_string == null)
        {
            throw new Exception("The value for field LatestListType of MusicSearchResultsJSON is not a string.");
        }
        TypeLatestListType the_open_enum = new TypeLatestListType();

        switch (json_string.getData()[0])
        {
        case 'A':
            switch (json_string.getData()[1])
            {
            case 'l':
                if ((String.Compare(json_string.getData(), 2, "bum", 0, 3, false) == 0) && (json_string.getData().Length == 5))
                {
                    the_open_enum.in_known_list = true;
                    the_open_enum.list_value    = TypeLatestListTypeKnownValues.LatestListType_Album;
                    goto open_enum_is_done;
                }
                break;

            case 'r':
                if ((String.Compare(json_string.getData(), 2, "tist", 0, 4, false) == 0) && (json_string.getData().Length == 6))
                {
                    the_open_enum.in_known_list = true;
                    the_open_enum.list_value    = TypeLatestListTypeKnownValues.LatestListType_Artist;
                    goto open_enum_is_done;
                }
                break;

            default:
                break;
            }
            break;

        case 'T':
            if ((String.Compare(json_string.getData(), 1, "rack", 0, 4, false) == 0) && (json_string.getData().Length == 5))
            {
                the_open_enum.in_known_list = true;
                the_open_enum.list_value    = TypeLatestListTypeKnownValues.LatestListType_Track;
                goto open_enum_is_done;
            }
            break;

        default:
            break;
        }
        the_open_enum.in_known_list = false;
        the_open_enum.string_value  = json_string.getData();
        open_enum_is_done :;
        setLatestListType(the_open_enum);
    }
    public string  getLatestListTypeAsString()
    {
        TypeLatestListType result = getLatestListType();

        if (result.in_known_list)
        {
            return(stringFromLatestListType(result.list_value));
        }
        else
        {
            return(result.string_value);
        }
    }
            protected override void handle_result(string result)
            {
                TypeLatestListTypeKnownValues known     = stringToLatestListType(result);
                TypeLatestListType            new_value = new TypeLatestListType();

                if (known == TypeLatestListTypeKnownValues.LatestListType__none)
                {
                    new_value.in_known_list = false;
                    new_value.string_value  = result;
                }
                else
                {
                    new_value.in_known_list = true;
                    new_value.list_value    = known;
                }
                handle_result(new_value);
            }
    public void setLatestListType(string chars)
    {
        TypeLatestListTypeKnownValues known     = stringToLatestListType(chars);
        TypeLatestListType            new_value = new TypeLatestListType();

        if (known == TypeLatestListTypeKnownValues.LatestListType__none)
        {
            new_value.in_known_list = false;
            new_value.string_value  = chars;
        }
        else
        {
            new_value.in_known_list = true;
            new_value.list_value    = known;
        }
        setLatestListType(new_value);
    }
 protected override void handle_result(TypeLatestListType result)
 {
     top.value.Add(result);
 }
            protected override void handle_result(TypeLatestListType result)
            {
//@@@        Debug.Assert(!have_value);
                have_value = true;
                value      = result;
            }
 protected abstract void handle_result(TypeLatestListType result);
 public void setLatestListType(TypeLatestListType new_value)
 {
     flagHasLatestListType = true;
     storeLatestListType   = new_value;
 }