From 9182f4d5b12589e494a79c58874fbff3bcb4e1c0 Mon Sep 17 00:00:00 2001 From: Laura Trotta Date: Fri, 21 Feb 2025 11:07:28 +0100 Subject: [PATCH] json enum case insensitive --- .../src/main/java/co/elastic/clients/json/JsonEnums.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java-client/src/main/java/co/elastic/clients/json/JsonEnums.java b/java-client/src/main/java/co/elastic/clients/json/JsonEnums.java index 58b525190..e6a49b840 100644 --- a/java-client/src/main/java/co/elastic/clients/json/JsonEnums.java +++ b/java-client/src/main/java/co/elastic/clients/json/JsonEnums.java @@ -53,12 +53,12 @@ protected Deserializer(T[] values, EnumSet acceptedEvents) { for (T member : values) { String jsonValue = member.jsonValue(); if (jsonValue != null) { // _Custom enum members have a null jsonValue - this.lookupTable.put(jsonValue, member); + this.lookupTable.put(jsonValue.toLowerCase(), member); // lookup must be case-insensitive } String[] aliases = member.aliases(); if (aliases != null) { for (String alias: aliases) { - this.lookupTable.put(alias, member); + this.lookupTable.put(alias.toLowerCase(), member); } } } @@ -79,7 +79,7 @@ public T deserialize(JsonParser parser, JsonpMapper mapper, JsonParser.Event eve * @throws JsonParsingException if no matching enum was found */ public T deserialize(String value, JsonParser parser) { - T result = this.lookupTable.get(value); + T result = this.lookupTable.get(value.toLowerCase()); if (result == null) { throw new JsonpMappingException("Invalid enum '" + value + "'", parser.getLocation()); } @@ -94,7 +94,7 @@ public T deserialize(String value, JsonParser parser) { * @throws IllegalArgumentException if no matching enum was found */ public T parse(String value) { - T result = this.lookupTable.get(value); + T result = this.lookupTable.get(value.toLowerCase()); if (result == null) { throw new NoSuchElementException("Invalid enum '" + value + "'"); }