Skip to content

[Backport 8.0] Prefer IList for collection properties on request types #6832

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@

namespace Elastic.Clients.Elasticsearch.Serialization;

internal abstract class IEnumerableSingleOrManyConverter<TItem> : JsonConverter<IEnumerable<TItem>>
internal abstract class IEnumerableSingleOrManyConverter<TItem> : JsonConverter<IList<TItem>>
{
public override IEnumerable<TItem>? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
public override IList<TItem>? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
SingleOrManySerializationHelper.Deserialize<TItem>(ref reader, options);

public override void Write(Utf8JsonWriter writer, IEnumerable<TItem> value, JsonSerializerOptions options) =>
public override void Write(Utf8JsonWriter writer, IList<TItem> value, JsonSerializerOptions options) =>
SingleOrManySerializationHelper.Serialize<TItem>(value, writer, options);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,12 @@
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System;

namespace Elastic.Clients.Elasticsearch.Serialization;

internal static class SingleOrManySerializationHelper
{
public static IEnumerable<TItem> Deserialize<TItem>(ref Utf8JsonReader reader, JsonSerializerOptions options)
public static IList<TItem> Deserialize<TItem>(ref Utf8JsonReader reader, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.StartObject)
{
Expand Down Expand Up @@ -44,7 +43,7 @@ public static IEnumerable<TItem> Deserialize<TItem>(ref Utf8JsonReader reader, J
throw new JsonException("Unexpected token.");
}

public static void Serialize<TItem>(IEnumerable<TItem> value, Utf8JsonWriter writer, JsonSerializerOptions options)
public static void Serialize<TItem>(IList<TItem> value, Utf8JsonWriter writer, JsonSerializerOptions options)
{
if (value is not ICollection<TItem> collection)
{
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ namespace Elastic.Clients.Elasticsearch.Cluster;
public sealed class ClusterHealthRequestParameters : RequestParameters<ClusterHealthRequestParameters>
{
[JsonIgnore]
public IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }
public IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IList<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }

[JsonIgnore]
public Elastic.Clients.Elasticsearch.Level? Level { get => Q<Elastic.Clients.Elasticsearch.Level?>("level"); set => Q("level", value); }
Expand Down Expand Up @@ -77,7 +77,7 @@ public ClusterHealthRequest(Elastic.Clients.Elasticsearch.Indices? indices) : ba
protected override HttpMethod HttpMethod => HttpMethod.GET;
protected override bool SupportsBody => false;
[JsonIgnore]
public IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }
public IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IList<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }

[JsonIgnore]
public Elastic.Clients.Elasticsearch.Level? Level { get => Q<Elastic.Clients.Elasticsearch.Level?>("level"); set => Q("level", value); }
Expand Down Expand Up @@ -120,7 +120,7 @@ public ClusterHealthRequestDescriptor()
internal override ApiUrls ApiUrls => ApiUrlsLookups.ClusterHealth;
protected override HttpMethod HttpMethod => HttpMethod.GET;
protected override bool SupportsBody => false;
public ClusterHealthRequestDescriptor<TDocument> ExpandWildcards(IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public ClusterHealthRequestDescriptor<TDocument> ExpandWildcards(IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public ClusterHealthRequestDescriptor<TDocument> Level(Elastic.Clients.Elasticsearch.Level? level) => Qs("level", level);
public ClusterHealthRequestDescriptor<TDocument> Local(bool? local = true) => Qs("local", local);
public ClusterHealthRequestDescriptor<TDocument> MasterTimeout(Elastic.Clients.Elasticsearch.Duration? masterTimeout) => Qs("master_timeout", masterTimeout);
Expand Down Expand Up @@ -152,7 +152,7 @@ public ClusterHealthRequestDescriptor()
internal override ApiUrls ApiUrls => ApiUrlsLookups.ClusterHealth;
protected override HttpMethod HttpMethod => HttpMethod.GET;
protected override bool SupportsBody => false;
public ClusterHealthRequestDescriptor ExpandWildcards(IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public ClusterHealthRequestDescriptor ExpandWildcards(IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public ClusterHealthRequestDescriptor Level(Elastic.Clients.Elasticsearch.Level? level) => Qs("level", level);
public ClusterHealthRequestDescriptor Local(bool? local = true) => Qs("local", local);
public ClusterHealthRequestDescriptor MasterTimeout(Elastic.Clients.Elasticsearch.Duration? masterTimeout) => Qs("master_timeout", masterTimeout);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public sealed class CountRequestParameters : RequestParameters<CountRequestParam
public string? Df { get => Q<string?>("df"); set => Q("df", value); }

[JsonIgnore]
public IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }
public IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IList<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }

[JsonIgnore]
public bool? IgnoreThrottled { get => Q<bool?>("ignore_throttled"); set => Q("ignore_throttled", value); }
Expand Down Expand Up @@ -101,7 +101,7 @@ public CountRequest(Elastic.Clients.Elasticsearch.Indices? indices) : base(r =>
public string? Df { get => Q<string?>("df"); set => Q("df", value); }

[JsonIgnore]
public IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }
public IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IList<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }

[JsonIgnore]
public bool? IgnoreThrottled { get => Q<bool?>("ignore_throttled"); set => Q("ignore_throttled", value); }
Expand Down Expand Up @@ -151,7 +151,7 @@ public CountRequestDescriptor(Elasticsearch.Indices? indices) : base(r => r.Opti
public CountRequestDescriptor<TDocument> Analyzer(string? analyzer) => Qs("analyzer", analyzer);
public CountRequestDescriptor<TDocument> DefaultOperator(Elastic.Clients.Elasticsearch.QueryDsl.Operator? defaultOperator) => Qs("default_operator", defaultOperator);
public CountRequestDescriptor<TDocument> Df(string? df) => Qs("df", df);
public CountRequestDescriptor<TDocument> ExpandWildcards(IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public CountRequestDescriptor<TDocument> ExpandWildcards(IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public CountRequestDescriptor<TDocument> IgnoreThrottled(bool? ignoreThrottled = true) => Qs("ignore_throttled", ignoreThrottled);
public CountRequestDescriptor<TDocument> IgnoreUnavailable(bool? ignoreUnavailable = true) => Qs("ignore_unavailable", ignoreUnavailable);
public CountRequestDescriptor<TDocument> Lenient(bool? lenient = true) => Qs("lenient", lenient);
Expand Down Expand Up @@ -238,7 +238,7 @@ public CountRequestDescriptor()
public CountRequestDescriptor Analyzer(string? analyzer) => Qs("analyzer", analyzer);
public CountRequestDescriptor DefaultOperator(Elastic.Clients.Elasticsearch.QueryDsl.Operator? defaultOperator) => Qs("default_operator", defaultOperator);
public CountRequestDescriptor Df(string? df) => Qs("df", df);
public CountRequestDescriptor ExpandWildcards(IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public CountRequestDescriptor ExpandWildcards(IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public CountRequestDescriptor IgnoreThrottled(bool? ignoreThrottled = true) => Qs("ignore_throttled", ignoreThrottled);
public CountRequestDescriptor IgnoreUnavailable(bool? ignoreUnavailable = true) => Qs("ignore_unavailable", ignoreUnavailable);
public CountRequestDescriptor Lenient(bool? lenient = true) => Qs("lenient", lenient);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public sealed class DeleteByQueryRequestParameters : RequestParameters<DeleteByQ
public string? Df { get => Q<string?>("df"); set => Q("df", value); }

[JsonIgnore]
public IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }
public IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IList<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }

[JsonIgnore]
public long? From { get => Q<long?>("from"); set => Q("from", value); }
Expand Down Expand Up @@ -93,10 +93,10 @@ public sealed class DeleteByQueryRequestParameters : RequestParameters<DeleteByQ
public Elastic.Clients.Elasticsearch.Slices? Slices { get => Q<Elastic.Clients.Elasticsearch.Slices?>("slices"); set => Q("slices", value); }

[JsonIgnore]
public IEnumerable<string>? Sort { get => Q<IEnumerable<string>?>("sort"); set => Q("sort", value); }
public IList<string>? Sort { get => Q<IList<string>?>("sort"); set => Q("sort", value); }

[JsonIgnore]
public IEnumerable<string>? Stats { get => Q<IEnumerable<string>?>("stats"); set => Q("stats", value); }
public IList<string>? Stats { get => Q<IList<string>?>("stats"); set => Q("stats", value); }

[JsonIgnore]
public long? TerminateAfter { get => Q<long?>("terminate_after"); set => Q("terminate_after", value); }
Expand Down Expand Up @@ -142,7 +142,7 @@ public DeleteByQueryRequest(Elastic.Clients.Elasticsearch.Indices indices) : bas
public string? Df { get => Q<string?>("df"); set => Q("df", value); }

[JsonIgnore]
public IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }
public IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? ExpandWildcards { get => Q<IList<Elastic.Clients.Elasticsearch.ExpandWildcard>?>("expand_wildcards"); set => Q("expand_wildcards", value); }

[JsonIgnore]
public long? From { get => Q<long?>("from"); set => Q("from", value); }
Expand Down Expand Up @@ -187,10 +187,10 @@ public DeleteByQueryRequest(Elastic.Clients.Elasticsearch.Indices indices) : bas
public Elastic.Clients.Elasticsearch.Slices? Slices { get => Q<Elastic.Clients.Elasticsearch.Slices?>("slices"); set => Q("slices", value); }

[JsonIgnore]
public IEnumerable<string>? Sort { get => Q<IEnumerable<string>?>("sort"); set => Q("sort", value); }
public IList<string>? Sort { get => Q<IList<string>?>("sort"); set => Q("sort", value); }

[JsonIgnore]
public IEnumerable<string>? Stats { get => Q<IEnumerable<string>?>("stats"); set => Q("stats", value); }
public IList<string>? Stats { get => Q<IList<string>?>("stats"); set => Q("stats", value); }

[JsonIgnore]
public long? TerminateAfter { get => Q<long?>("terminate_after"); set => Q("terminate_after", value); }
Expand Down Expand Up @@ -240,7 +240,7 @@ internal DeleteByQueryRequestDescriptor()
public DeleteByQueryRequestDescriptor<TDocument> Conflicts(Elastic.Clients.Elasticsearch.Conflicts? conflicts) => Qs("conflicts", conflicts);
public DeleteByQueryRequestDescriptor<TDocument> DefaultOperator(Elastic.Clients.Elasticsearch.QueryDsl.Operator? defaultOperator) => Qs("default_operator", defaultOperator);
public DeleteByQueryRequestDescriptor<TDocument> Df(string? df) => Qs("df", df);
public DeleteByQueryRequestDescriptor<TDocument> ExpandWildcards(IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public DeleteByQueryRequestDescriptor<TDocument> ExpandWildcards(IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public DeleteByQueryRequestDescriptor<TDocument> From(long? from) => Qs("from", from);
public DeleteByQueryRequestDescriptor<TDocument> IgnoreUnavailable(bool? ignoreUnavailable = true) => Qs("ignore_unavailable", ignoreUnavailable);
public DeleteByQueryRequestDescriptor<TDocument> Lenient(bool? lenient = true) => Qs("lenient", lenient);
Expand All @@ -255,8 +255,8 @@ internal DeleteByQueryRequestDescriptor()
public DeleteByQueryRequestDescriptor<TDocument> SearchTimeout(Elastic.Clients.Elasticsearch.Duration? searchTimeout) => Qs("search_timeout", searchTimeout);
public DeleteByQueryRequestDescriptor<TDocument> SearchType(Elastic.Clients.Elasticsearch.SearchType? searchType) => Qs("search_type", searchType);
public DeleteByQueryRequestDescriptor<TDocument> Slices(Elastic.Clients.Elasticsearch.Slices? slices) => Qs("slices", slices);
public DeleteByQueryRequestDescriptor<TDocument> Sort(IEnumerable<string>? sort) => Qs("sort", sort);
public DeleteByQueryRequestDescriptor<TDocument> Stats(IEnumerable<string>? stats) => Qs("stats", stats);
public DeleteByQueryRequestDescriptor<TDocument> Sort(IList<string>? sort) => Qs("sort", sort);
public DeleteByQueryRequestDescriptor<TDocument> Stats(IList<string>? stats) => Qs("stats", stats);
public DeleteByQueryRequestDescriptor<TDocument> TerminateAfter(long? terminateAfter) => Qs("terminate_after", terminateAfter);
public DeleteByQueryRequestDescriptor<TDocument> Timeout(Elastic.Clients.Elasticsearch.Duration? timeout) => Qs("timeout", timeout);
public DeleteByQueryRequestDescriptor<TDocument> Version(bool? version = true) => Qs("version", version);
Expand Down Expand Up @@ -401,7 +401,7 @@ internal DeleteByQueryRequestDescriptor()
public DeleteByQueryRequestDescriptor Conflicts(Elastic.Clients.Elasticsearch.Conflicts? conflicts) => Qs("conflicts", conflicts);
public DeleteByQueryRequestDescriptor DefaultOperator(Elastic.Clients.Elasticsearch.QueryDsl.Operator? defaultOperator) => Qs("default_operator", defaultOperator);
public DeleteByQueryRequestDescriptor Df(string? df) => Qs("df", df);
public DeleteByQueryRequestDescriptor ExpandWildcards(IEnumerable<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public DeleteByQueryRequestDescriptor ExpandWildcards(IList<Elastic.Clients.Elasticsearch.ExpandWildcard>? expandWildcards) => Qs("expand_wildcards", expandWildcards);
public DeleteByQueryRequestDescriptor From(long? from) => Qs("from", from);
public DeleteByQueryRequestDescriptor IgnoreUnavailable(bool? ignoreUnavailable = true) => Qs("ignore_unavailable", ignoreUnavailable);
public DeleteByQueryRequestDescriptor Lenient(bool? lenient = true) => Qs("lenient", lenient);
Expand All @@ -416,8 +416,8 @@ internal DeleteByQueryRequestDescriptor()
public DeleteByQueryRequestDescriptor SearchTimeout(Elastic.Clients.Elasticsearch.Duration? searchTimeout) => Qs("search_timeout", searchTimeout);
public DeleteByQueryRequestDescriptor SearchType(Elastic.Clients.Elasticsearch.SearchType? searchType) => Qs("search_type", searchType);
public DeleteByQueryRequestDescriptor Slices(Elastic.Clients.Elasticsearch.Slices? slices) => Qs("slices", slices);
public DeleteByQueryRequestDescriptor Sort(IEnumerable<string>? sort) => Qs("sort", sort);
public DeleteByQueryRequestDescriptor Stats(IEnumerable<string>? stats) => Qs("stats", stats);
public DeleteByQueryRequestDescriptor Sort(IList<string>? sort) => Qs("sort", sort);
public DeleteByQueryRequestDescriptor Stats(IList<string>? stats) => Qs("stats", stats);
public DeleteByQueryRequestDescriptor TerminateAfter(long? terminateAfter) => Qs("terminate_after", terminateAfter);
public DeleteByQueryRequestDescriptor Timeout(Elastic.Clients.Elasticsearch.Duration? timeout) => Qs("timeout", timeout);
public DeleteByQueryRequestDescriptor Version(bool? version = true) => Qs("version", version);
Expand Down
Loading