From fac607a8a2fc9b202ee836d859f966e5e736269e Mon Sep 17 00:00:00 2001 From: "Kim, Joo Hyuk" Date: Wed, 24 Jan 2024 11:58:27 +0900 Subject: [PATCH 1/3] Implement new getAliases --- .../introspect/BeanPropertyDefinition.java | 8 ++++++++ .../databind/introspect/POJOPropertyBuilder.java | 15 +++++++++++++++ .../util/SimpleBeanPropertyDefinition.java | 14 ++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/BeanPropertyDefinition.java b/src/main/java/com/fasterxml/jackson/databind/introspect/BeanPropertyDefinition.java index c5d84bc987..8dc52b9376 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/BeanPropertyDefinition.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/BeanPropertyDefinition.java @@ -1,6 +1,7 @@ package com.fasterxml.jackson.databind.introspect; import java.util.Iterator; +import java.util.List; import com.fasterxml.jackson.annotation.JsonInclude; @@ -284,4 +285,11 @@ public String findReferenceName() { * @since 2.5 */ public abstract JsonInclude.Value findInclusion(); + + /** + * Retrieves all aliases of the property, if any. + * + * @return never null. Empty list if no aliases found. + */ + public abstract List getAliases(); } diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java b/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java index 343b998680..2258b65ae1 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java @@ -3,6 +3,8 @@ import java.util.*; import java.util.stream.Collectors; +import javax.swing.text.html.Option; + import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSetter; @@ -843,6 +845,19 @@ public JsonInclude.Value findInclusion() { return (v == null) ? JsonInclude.Value.empty() : v; } + // since 2.17 + @Override + public List getAliases() { + AnnotatedMember ann = getPrimaryMember(); + if (ann != null) { + List propertyNames = _annotationIntrospector.findPropertyAliases(ann); + if (propertyNames != null) { + return propertyNames; + } + } + return Collections.emptyList(); + } + public JsonProperty.Access findAccess() { return fromMemberAnnotationsExcept(new WithMember() { @Override diff --git a/src/main/java/com/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition.java b/src/main/java/com/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition.java index 3dc8f7da90..fcdd68a953 100644 --- a/src/main/java/com/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition.java +++ b/src/main/java/com/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition.java @@ -2,6 +2,7 @@ import java.util.Collections; import java.util.Iterator; +import java.util.List; import com.fasterxml.jackson.annotation.JsonInclude; @@ -218,6 +219,19 @@ public JsonInclude.Value findInclusion() { return _inclusion; } + // since 2.17 + @Override + public List getAliases() { + AnnotatedMember ann = getPrimaryMember(); + if (ann != null) { + List propertyNames = _annotationIntrospector.findPropertyAliases(ann); + if (propertyNames != null) { + return propertyNames; + } + } + return Collections.emptyList(); + } + /* /********************************************************** /* Access to accessors (fields, methods etc) From d0cd453d0635bbe196f6b57e7c8b1c0acec7c181 Mon Sep 17 00:00:00 2001 From: "Kim, Joo Hyuk" Date: Wed, 24 Jan 2024 12:00:10 +0900 Subject: [PATCH 2/3] Remove random import --- .../jackson/databind/introspect/POJOPropertyBuilder.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java b/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java index 2258b65ae1..e12425ef2c 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java @@ -3,8 +3,6 @@ import java.util.*; import java.util.stream.Collectors; -import javax.swing.text.html.Option; - import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSetter; From 91dd6c419fcbccc313e3e9959fb7a2b5428ed907 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Tue, 23 Jan 2024 20:30:19 -0800 Subject: [PATCH 3/3] Minor renaming to follow existing convention (getAliases() -> findAliases()) --- .../databind/introspect/BeanPropertyDefinition.java | 11 ++++++++--- .../databind/introspect/POJOPropertyBuilder.java | 2 +- .../databind/util/SimpleBeanPropertyDefinition.java | 5 ++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/BeanPropertyDefinition.java b/src/main/java/com/fasterxml/jackson/databind/introspect/BeanPropertyDefinition.java index 8dc52b9376..92d2de3b8d 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/BeanPropertyDefinition.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/BeanPropertyDefinition.java @@ -1,5 +1,6 @@ package com.fasterxml.jackson.databind.introspect; +import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -287,9 +288,13 @@ public String findReferenceName() { public abstract JsonInclude.Value findInclusion(); /** - * Retrieves all aliases of the property, if any. + * Method for finding all aliases of the property, if any. * - * @return never null. Empty list if no aliases found. + * @return {@code List} of aliases, if any; never null (empty list if no aliases found) + * + * @since 2.17 */ - public abstract List getAliases(); + public List findAliases() { + return Collections.emptyList(); + } } diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java b/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java index e12425ef2c..50fd3fd7a0 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java @@ -845,7 +845,7 @@ public JsonInclude.Value findInclusion() { // since 2.17 @Override - public List getAliases() { + public List findAliases() { AnnotatedMember ann = getPrimaryMember(); if (ann != null) { List propertyNames = _annotationIntrospector.findPropertyAliases(ann); diff --git a/src/main/java/com/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition.java b/src/main/java/com/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition.java index fcdd68a953..43bdc9667b 100644 --- a/src/main/java/com/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition.java +++ b/src/main/java/com/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition.java @@ -219,9 +219,8 @@ public JsonInclude.Value findInclusion() { return _inclusion; } - // since 2.17 - @Override - public List getAliases() { + @Override // since 2.17 + public List findAliases() { AnnotatedMember ann = getPrimaryMember(); if (ann != null) { List propertyNames = _annotationIntrospector.findPropertyAliases(ann);