@@ -218,6 +218,58 @@ public LogsArrayProcessorOperation deserialize(JsonParser jp, DeserializationCon
218218 Level .FINER , "Input data does not match schema 'LogsArrayProcessorOperationSelect'" , e );
219219 }
220220
221+ // deserialize LogsArrayProcessorOperationExtractKeyValue
222+ try {
223+ boolean attemptParsing = true ;
224+ // ensure that we respect type coercion as set on the client ObjectMapper
225+ if (LogsArrayProcessorOperationExtractKeyValue .class .equals (Integer .class )
226+ || LogsArrayProcessorOperationExtractKeyValue .class .equals (Long .class )
227+ || LogsArrayProcessorOperationExtractKeyValue .class .equals (Float .class )
228+ || LogsArrayProcessorOperationExtractKeyValue .class .equals (Double .class )
229+ || LogsArrayProcessorOperationExtractKeyValue .class .equals (Boolean .class )
230+ || LogsArrayProcessorOperationExtractKeyValue .class .equals (String .class )) {
231+ attemptParsing = typeCoercion ;
232+ if (!attemptParsing ) {
233+ attemptParsing |=
234+ ((LogsArrayProcessorOperationExtractKeyValue .class .equals (Integer .class )
235+ || LogsArrayProcessorOperationExtractKeyValue .class .equals (Long .class ))
236+ && token == JsonToken .VALUE_NUMBER_INT );
237+ attemptParsing |=
238+ ((LogsArrayProcessorOperationExtractKeyValue .class .equals (Float .class )
239+ || LogsArrayProcessorOperationExtractKeyValue .class .equals (Double .class ))
240+ && (token == JsonToken .VALUE_NUMBER_FLOAT
241+ || token == JsonToken .VALUE_NUMBER_INT ));
242+ attemptParsing |=
243+ (LogsArrayProcessorOperationExtractKeyValue .class .equals (Boolean .class )
244+ && (token == JsonToken .VALUE_FALSE || token == JsonToken .VALUE_TRUE ));
245+ attemptParsing |=
246+ (LogsArrayProcessorOperationExtractKeyValue .class .equals (String .class )
247+ && token == JsonToken .VALUE_STRING );
248+ }
249+ }
250+ if (attemptParsing ) {
251+ tmp =
252+ tree .traverse (jp .getCodec ())
253+ .readValueAs (LogsArrayProcessorOperationExtractKeyValue .class );
254+ // TODO: there is no validation against JSON schema constraints
255+ // (min, max, enum, pattern...), this does not perform a strict JSON
256+ // validation, which means the 'match' count may be higher than it should be.
257+ if (!((LogsArrayProcessorOperationExtractKeyValue ) tmp ).unparsed ) {
258+ deserialized = tmp ;
259+ match ++;
260+ }
261+ log .log (
262+ Level .FINER ,
263+ "Input data matches schema 'LogsArrayProcessorOperationExtractKeyValue'" );
264+ }
265+ } catch (Exception e ) {
266+ // deserialization failed, continue
267+ log .log (
268+ Level .FINER ,
269+ "Input data does not match schema 'LogsArrayProcessorOperationExtractKeyValue'" ,
270+ e );
271+ }
272+
221273 LogsArrayProcessorOperation ret = new LogsArrayProcessorOperation ();
222274 if (match == 1 ) {
223275 ret .setActualInstance (deserialized );
@@ -263,6 +315,11 @@ public LogsArrayProcessorOperation(LogsArrayProcessorOperationSelect o) {
263315 setActualInstance (o );
264316 }
265317
318+ public LogsArrayProcessorOperation (LogsArrayProcessorOperationExtractKeyValue o ) {
319+ super ("oneOf" , Boolean .FALSE );
320+ setActualInstance (o );
321+ }
322+
266323 static {
267324 schemas .put (
268325 "LogsArrayProcessorOperationAppend" ,
@@ -273,6 +330,9 @@ public LogsArrayProcessorOperation(LogsArrayProcessorOperationSelect o) {
273330 schemas .put (
274331 "LogsArrayProcessorOperationSelect" ,
275332 new GenericType <LogsArrayProcessorOperationSelect >() {});
333+ schemas .put (
334+ "LogsArrayProcessorOperationExtractKeyValue" ,
335+ new GenericType <LogsArrayProcessorOperationExtractKeyValue >() {});
276336 JSON .registerDescendants (
277337 LogsArrayProcessorOperation .class , Collections .unmodifiableMap (schemas ));
278338 }
@@ -285,7 +345,8 @@ public Map<String, GenericType> getSchemas() {
285345 /**
286346 * Set the instance that matches the oneOf child schema, check the instance parameter is valid
287347 * against the oneOf child schemas: LogsArrayProcessorOperationAppend,
288- * LogsArrayProcessorOperationLength, LogsArrayProcessorOperationSelect
348+ * LogsArrayProcessorOperationLength, LogsArrayProcessorOperationSelect,
349+ * LogsArrayProcessorOperationExtractKeyValue
289350 *
290351 * <p>It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a
291352 * composed schema (allOf, anyOf, oneOf).
@@ -307,22 +368,30 @@ public void setActualInstance(Object instance) {
307368 super .setActualInstance (instance );
308369 return ;
309370 }
371+ if (JSON .isInstanceOf (
372+ LogsArrayProcessorOperationExtractKeyValue .class , instance , new HashSet <Class <?>>())) {
373+ super .setActualInstance (instance );
374+ return ;
375+ }
310376
311377 if (JSON .isInstanceOf (UnparsedObject .class , instance , new HashSet <Class <?>>())) {
312378 super .setActualInstance (instance );
313379 return ;
314380 }
315381 throw new RuntimeException (
316382 "Invalid instance type. Must be LogsArrayProcessorOperationAppend,"
317- + " LogsArrayProcessorOperationLength, LogsArrayProcessorOperationSelect" );
383+ + " LogsArrayProcessorOperationLength, LogsArrayProcessorOperationSelect,"
384+ + " LogsArrayProcessorOperationExtractKeyValue" );
318385 }
319386
320387 /**
321388 * Get the actual instance, which can be the following: LogsArrayProcessorOperationAppend,
322- * LogsArrayProcessorOperationLength, LogsArrayProcessorOperationSelect
389+ * LogsArrayProcessorOperationLength, LogsArrayProcessorOperationSelect,
390+ * LogsArrayProcessorOperationExtractKeyValue
323391 *
324392 * @return The actual instance (LogsArrayProcessorOperationAppend,
325- * LogsArrayProcessorOperationLength, LogsArrayProcessorOperationSelect)
393+ * LogsArrayProcessorOperationLength, LogsArrayProcessorOperationSelect,
394+ * LogsArrayProcessorOperationExtractKeyValue)
326395 */
327396 @ Override
328397 public Object getActualInstance () {
@@ -364,4 +433,16 @@ public LogsArrayProcessorOperationSelect getLogsArrayProcessorOperationSelect()
364433 throws ClassCastException {
365434 return (LogsArrayProcessorOperationSelect ) super .getActualInstance ();
366435 }
436+
437+ /**
438+ * Get the actual instance of `LogsArrayProcessorOperationExtractKeyValue`. If the actual instance
439+ * is not `LogsArrayProcessorOperationExtractKeyValue`, the ClassCastException will be thrown.
440+ *
441+ * @return The actual instance of `LogsArrayProcessorOperationExtractKeyValue`
442+ * @throws ClassCastException if the instance is not `LogsArrayProcessorOperationExtractKeyValue`
443+ */
444+ public LogsArrayProcessorOperationExtractKeyValue getLogsArrayProcessorOperationExtractKeyValue ()
445+ throws ClassCastException {
446+ return (LogsArrayProcessorOperationExtractKeyValue ) super .getActualInstance ();
447+ }
367448}
0 commit comments