1
+ // Licensed to Elasticsearch B.V under one or more agreements.
2
+ // Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
+ // See the LICENSE file in the project root for more information.
4
+ //
5
+ // ███╗ ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
6
+ // ████╗ ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
7
+ // ██╔██╗ ██║██║ ██║ ██║ ██║██║ █████╗
8
+ // ██║╚██╗██║██║ ██║ ██║ ██║██║ ██╔══╝
9
+ // ██║ ╚████║╚██████╔╝ ██║ ██║╚██████╗███████╗
10
+ // ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚══════╝
11
+ // ------------------------------------------------
12
+ //
13
+ // This file is automatically generated.
14
+ // Please do not edit these files manually.
15
+ //
16
+ // ------------------------------------------------
17
+
18
+ using Elastic . Clients . Elasticsearch . Fluent ;
19
+ using Elastic . Clients . Elasticsearch . Serialization ;
20
+ using Elastic . Transport ;
21
+ using System ;
22
+ using System . Collections . Generic ;
23
+ using System . Diagnostics . CodeAnalysis ;
24
+ using System . Linq . Expressions ;
25
+ using System . Text . Json ;
26
+ using System . Text . Json . Serialization ;
27
+
28
+ #nullable restore
29
+ namespace Elastic . Clients . Elasticsearch . Analysis ;
30
+ public partial class CharFilters : IsADictionary < string , ICharFilter >
31
+ {
32
+ public CharFilters ( )
33
+ {
34
+ }
35
+
36
+ public CharFilters ( IDictionary < string , ICharFilter > container ) : base ( container )
37
+ {
38
+ }
39
+
40
+ public void Add ( string name , ICharFilter charFilter ) => BackingDictionary . Add ( Sanitize ( name ) , charFilter ) ;
41
+ public bool TryGetCharFilter ( string name , [ NotNullWhen ( returnValue : true ) ] out ICharFilter charFilter ) => BackingDictionary . TryGetValue ( Sanitize ( name ) , out charFilter ) ;
42
+ public bool TryGetCharFilter < T > ( string name , [ NotNullWhen ( returnValue : true ) ] out T ? charFilter )
43
+ where T : class , ICharFilter
44
+ {
45
+ if ( BackingDictionary . TryGetValue ( Sanitize ( name ) , out var matchedValue ) && matchedValue is T finalValue )
46
+ {
47
+ charFilter = finalValue ;
48
+ return true ;
49
+ }
50
+
51
+ charFilter = null ;
52
+ return false ;
53
+ }
54
+ }
55
+
56
+ public sealed partial class CharFiltersDescriptor : IsADictionaryDescriptor < CharFiltersDescriptor , CharFilters , string , ICharFilter >
57
+ {
58
+ public CharFiltersDescriptor ( ) : base ( new CharFilters ( ) )
59
+ {
60
+ }
61
+
62
+ public CharFiltersDescriptor ( CharFilters charFilters ) : base ( charFilters ?? new CharFilters ( ) )
63
+ {
64
+ }
65
+
66
+ public CharFiltersDescriptor HtmlStrip ( string charFilterName ) => AssignVariant < HtmlStripCharFilterDescriptor , HtmlStripCharFilter > ( charFilterName , null ) ;
67
+ public CharFiltersDescriptor HtmlStrip ( string charFilterName , Action < HtmlStripCharFilterDescriptor > configure ) => AssignVariant < HtmlStripCharFilterDescriptor , HtmlStripCharFilter > ( charFilterName , configure ) ;
68
+ public CharFiltersDescriptor HtmlStrip ( string charFilterName , HtmlStripCharFilter htmlStripCharFilter ) => AssignVariant ( charFilterName , htmlStripCharFilter ) ;
69
+ public CharFiltersDescriptor IcuNormalization ( string charFilterName ) => AssignVariant < IcuNormalizationCharFilterDescriptor , IcuNormalizationCharFilter > ( charFilterName , null ) ;
70
+ public CharFiltersDescriptor IcuNormalization ( string charFilterName , Action < IcuNormalizationCharFilterDescriptor > configure ) => AssignVariant < IcuNormalizationCharFilterDescriptor , IcuNormalizationCharFilter > ( charFilterName , configure ) ;
71
+ public CharFiltersDescriptor IcuNormalization ( string charFilterName , IcuNormalizationCharFilter icuNormalizationCharFilter ) => AssignVariant ( charFilterName , icuNormalizationCharFilter ) ;
72
+ public CharFiltersDescriptor KuromojiIterationMark ( string charFilterName ) => AssignVariant < KuromojiIterationMarkCharFilterDescriptor , KuromojiIterationMarkCharFilter > ( charFilterName , null ) ;
73
+ public CharFiltersDescriptor KuromojiIterationMark ( string charFilterName , Action < KuromojiIterationMarkCharFilterDescriptor > configure ) => AssignVariant < KuromojiIterationMarkCharFilterDescriptor , KuromojiIterationMarkCharFilter > ( charFilterName , configure ) ;
74
+ public CharFiltersDescriptor KuromojiIterationMark ( string charFilterName , KuromojiIterationMarkCharFilter kuromojiIterationMarkCharFilter ) => AssignVariant ( charFilterName , kuromojiIterationMarkCharFilter ) ;
75
+ public CharFiltersDescriptor Mapping ( string charFilterName ) => AssignVariant < MappingCharFilterDescriptor , MappingCharFilter > ( charFilterName , null ) ;
76
+ public CharFiltersDescriptor Mapping ( string charFilterName , Action < MappingCharFilterDescriptor > configure ) => AssignVariant < MappingCharFilterDescriptor , MappingCharFilter > ( charFilterName , configure ) ;
77
+ public CharFiltersDescriptor Mapping ( string charFilterName , MappingCharFilter mappingCharFilter ) => AssignVariant ( charFilterName , mappingCharFilter ) ;
78
+ public CharFiltersDescriptor PatternReplace ( string charFilterName ) => AssignVariant < PatternReplaceCharFilterDescriptor , PatternReplaceCharFilter > ( charFilterName , null ) ;
79
+ public CharFiltersDescriptor PatternReplace ( string charFilterName , Action < PatternReplaceCharFilterDescriptor > configure ) => AssignVariant < PatternReplaceCharFilterDescriptor , PatternReplaceCharFilter > ( charFilterName , configure ) ;
80
+ public CharFiltersDescriptor PatternReplace ( string charFilterName , PatternReplaceCharFilter patternReplaceCharFilter ) => AssignVariant ( charFilterName , patternReplaceCharFilter ) ;
81
+ }
82
+
83
+ internal sealed partial class CharFilterInterfaceConverter : JsonConverter < ICharFilter >
84
+ {
85
+ public override ICharFilter Read ( ref Utf8JsonReader reader , Type typeToConvert , JsonSerializerOptions options )
86
+ {
87
+ var copiedReader = reader ;
88
+ string ? type = null ;
89
+ using var jsonDoc = JsonDocument . ParseValue ( ref copiedReader ) ;
90
+ if ( jsonDoc is not null && jsonDoc . RootElement . TryGetProperty ( "type" , out var readType ) && readType . ValueKind == JsonValueKind . String )
91
+ {
92
+ type = readType . ToString ( ) ;
93
+ }
94
+
95
+ switch ( type )
96
+ {
97
+ case "kuromoji_iteration_mark" :
98
+ return JsonSerializer . Deserialize < KuromojiIterationMarkCharFilter > ( ref reader , options ) ;
99
+ case "icu_normalizer" :
100
+ return JsonSerializer . Deserialize < IcuNormalizationCharFilter > ( ref reader , options ) ;
101
+ case "pattern_replace" :
102
+ return JsonSerializer . Deserialize < PatternReplaceCharFilter > ( ref reader , options ) ;
103
+ case "mapping" :
104
+ return JsonSerializer . Deserialize < MappingCharFilter > ( ref reader , options ) ;
105
+ case "html_strip" :
106
+ return JsonSerializer . Deserialize < HtmlStripCharFilter > ( ref reader , options ) ;
107
+ default :
108
+ ThrowHelper . ThrowUnknownTaggedUnionVariantJsonException ( type , typeof ( ICharFilter ) ) ;
109
+ return null ;
110
+ }
111
+ }
112
+
113
+ public override void Write ( Utf8JsonWriter writer , ICharFilter value , JsonSerializerOptions options )
114
+ {
115
+ if ( value is null )
116
+ {
117
+ writer . WriteNullValue ( ) ;
118
+ return ;
119
+ }
120
+
121
+ switch ( value . Type )
122
+ {
123
+ case "kuromoji_iteration_mark" :
124
+ JsonSerializer . Serialize ( writer , value , typeof ( KuromojiIterationMarkCharFilter ) , options ) ;
125
+ return ;
126
+ case "icu_normalizer" :
127
+ JsonSerializer . Serialize ( writer , value , typeof ( IcuNormalizationCharFilter ) , options ) ;
128
+ return ;
129
+ case "pattern_replace" :
130
+ JsonSerializer . Serialize ( writer , value , typeof ( PatternReplaceCharFilter ) , options ) ;
131
+ return ;
132
+ case "mapping" :
133
+ JsonSerializer . Serialize ( writer , value , typeof ( MappingCharFilter ) , options ) ;
134
+ return ;
135
+ case "html_strip" :
136
+ JsonSerializer . Serialize ( writer , value , typeof ( HtmlStripCharFilter ) , options ) ;
137
+ return ;
138
+ default :
139
+ var type = value . GetType ( ) ;
140
+ JsonSerializer . Serialize ( writer , value , type , options ) ;
141
+ return ;
142
+ }
143
+ }
144
+ }
145
+
146
+ [ JsonConverter ( typeof ( CharFilterInterfaceConverter ) ) ]
147
+ public partial interface ICharFilter
148
+ {
149
+ public string Type { get ; }
150
+ }
0 commit comments