-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Closed
Labels
2.17Issues planned at earliest for 2.17Issues planned at earliest for 2.17
Milestone
Description
If I have ParameterNamesModule
and this data class:
public class Data {
private final String foo;
private final Integer bar;
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
static Data fromBuilder(Builder builder) {
return new Data(builder.foo, builder.bar);
}
private Data(String foo, Integer bar) {
this.foo = foo;
this.bar = bar;
}
public String getFoo() {
return foo;
}
public Integer getBar() {
return bar;
}
public static class Builder {
private String foo;
private Integer bar;
@JsonProperty("foo")
public Builder foo(String foo) {
this.foo = foo;
return this;
}
@JsonProperty("bar")
public Builder bar(Integer bar) {
this.bar = bar;
return this;
}
public Data build() {
return Data.fromBuilder(this);
}
}
}
Then running objectMapper.getSerializationConfig().introspect(/* Data type */);
will return a BeanDescription
that includes builder
as a property.
This happens because with ParameterNamesModule
we are able to infer the name of the JsonCreator
parameter here and when we are, we include this parameter in the properties.
I think here we should be checking if the creator factory is a delegating kind that takes a complex value as an input. If maintainers of this repo agree, I will file a PR with the fix.
Metadata
Metadata
Assignees
Labels
2.17Issues planned at earliest for 2.17Issues planned at earliest for 2.17