Skip to content

Commit

Permalink
[fixes #2168] Added JsonSetter as a copyable annotation
Browse files Browse the repository at this point in the history
  • Loading branch information
rzwitserloot committed Jul 15, 2019
1 parent b439e4c commit e1d1415
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 3 deletions.
1 change: 1 addition & 0 deletions src/core/lombok/core/handlers/HandlerUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,7 @@ public static int primeForNull() {
}));
COPY_TO_SETTER_ANNOTATIONS = Collections.unmodifiableList(Arrays.asList(new String[] {
"com.fasterxml.jackson.annotation.JsonProperty",
"com.fasterxml.jackson.annotation.JsonSetter",
}));
}

Expand Down
12 changes: 12 additions & 0 deletions test/stubs/com/fasterxml/jackson/annotation/JsonSetter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.fasterxml.jackson.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface JsonSetter {
Nulls nulls();
}
5 changes: 5 additions & 0 deletions test/stubs/com/fasterxml/jackson/annotation/Nulls.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.fasterxml.jackson.annotation;

public enum Nulls {
SKIP;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.annotation.Nulls;
public class JacksonJsonProperty {
@JsonProperty("kebab-case-prop")
@JsonSetter(nulls = Nulls.SKIP)
public String kebabCaseProp;
@java.lang.SuppressWarnings("all")
JacksonJsonProperty(final String kebabCaseProp) {
Expand All @@ -14,6 +17,7 @@ public static class JacksonJsonPropertyBuilder {
JacksonJsonPropertyBuilder() {
}
@JsonProperty("kebab-case-prop")
@JsonSetter(nulls = Nulls.SKIP)
@java.lang.SuppressWarnings("all")
public JacksonJsonPropertyBuilder kebabCaseProp(final String kebabCaseProp) {
this.kebabCaseProp = kebabCaseProp;
Expand All @@ -34,6 +38,7 @@ public static JacksonJsonPropertyBuilder builder() {
return new JacksonJsonPropertyBuilder();
}
@JsonProperty("kebab-case-prop")
@JsonSetter(nulls = Nulls.SKIP)
@java.lang.SuppressWarnings("all")
public void setKebabCaseProp(final String kebabCaseProp) {
this.kebabCaseProp = kebabCaseProp;
Expand Down
8 changes: 5 additions & 3 deletions test/transform/resource/after-ecj/JacksonJsonProperty.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.annotation.Nulls;
import lombok.Builder;
import lombok.Setter;
public @Builder class JacksonJsonProperty {
Expand All @@ -7,7 +9,7 @@
@java.lang.SuppressWarnings("all") JacksonJsonPropertyBuilder() {
super();
}
public @JsonProperty("kebab-case-prop") @java.lang.SuppressWarnings("all") JacksonJsonPropertyBuilder kebabCaseProp(final String kebabCaseProp) {
public @JsonProperty("kebab-case-prop") @JsonSetter(nulls = Nulls.SKIP) @java.lang.SuppressWarnings("all") JacksonJsonPropertyBuilder kebabCaseProp(final String kebabCaseProp) {
this.kebabCaseProp = kebabCaseProp;
return this;
}
Expand All @@ -18,15 +20,15 @@
return (("JacksonJsonProperty.JacksonJsonPropertyBuilder(kebabCaseProp=" + this.kebabCaseProp) + ")");
}
}
public @JsonProperty("kebab-case-prop") @Setter String kebabCaseProp;
public @JsonProperty("kebab-case-prop") @JsonSetter(nulls = Nulls.SKIP) @Setter String kebabCaseProp;
@java.lang.SuppressWarnings("all") JacksonJsonProperty(final String kebabCaseProp) {
super();
this.kebabCaseProp = kebabCaseProp;
}
public static @java.lang.SuppressWarnings("all") JacksonJsonPropertyBuilder builder() {
return new JacksonJsonPropertyBuilder();
}
public @JsonProperty("kebab-case-prop") @java.lang.SuppressWarnings("all") void setKebabCaseProp(final String kebabCaseProp) {
public @JsonProperty("kebab-case-prop") @JsonSetter(nulls = Nulls.SKIP) @java.lang.SuppressWarnings("all") void setKebabCaseProp(final String kebabCaseProp) {
this.kebabCaseProp = kebabCaseProp;
}
}
3 changes: 3 additions & 0 deletions test/transform/resource/before/JacksonJsonProperty.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.annotation.Nulls;
import lombok.Builder;
import lombok.Setter;

@Builder
public class JacksonJsonProperty {
@JsonProperty("kebab-case-prop")
@JsonSetter(nulls = Nulls.SKIP)
@Setter
public String kebabCaseProp;
}

0 comments on commit e1d1415

Please sign in to comment.