@@ -17,6 +17,10 @@ import java.util.Objects;
17
17
<#if toString >
18
18
import java.util.StringJoiner;
19
19
</#if >
20
+ import java.util.Optional;
21
+
22
+ import com.fasterxml.jackson.annotation.JsonInclude;
23
+ import com.fasterxml.jackson.annotation.JsonInclude.Include;
20
24
21
25
<#if javaDoc?has_content >
22
26
/**
@@ -34,6 +38,7 @@ import java.util.StringJoiner;
34
38
<#list annotations as annotation >
35
39
@${annotation}
36
40
</#list >
41
+ @JsonInclude(Include.NON_NULL)
37
42
public class ${className} implements java.io.Serializable<#if implements?has_content ><#list implements as interface >, ${interface} <#if interface_has_next ></#if ></#list ></#if > {
38
43
39
44
<#if fields?has_content >
@@ -44,7 +49,7 @@ public class ${className} implements java.io.Serializable<#if implements?has_con
44
49
<#list field.annotations as annotation >
45
50
@${annotation}
46
51
</#list >
47
- private ${field.type} ${field.name} <#if field.defaultValue?has_content > = ${field.defaultValue} </#if >;
52
+ private Optional< ${field.type} > ${field.name} <#if field.defaultValue?has_content > = ${field.defaultValue} </#if >;
48
53
</#list >
49
54
</#if >
50
55
@@ -53,6 +58,12 @@ public class ${className} implements java.io.Serializable<#if implements?has_con
53
58
54
59
<#if fields?has_content >
55
60
public ${className} (<#list fields as field >${field.type} ${field.name} <#if field_has_next >, </#if ></#list >) {
61
+ <#list fields as field >
62
+ this.${field.name} = Optional.ofNullable(${field.name} );
63
+ </#list >
64
+ }
65
+
66
+ public ${className} (<#list fields as field >Optional<${field.type} > ${field.name} <#if field_has_next >, </#if ></#list >) {
56
67
<#list fields as field >
57
68
this.${field.name} = ${field.name} ;
58
69
</#list >
@@ -72,7 +83,7 @@ public class ${className} implements java.io.Serializable<#if implements?has_con
72
83
@${field.deprecated.annotation}
73
84
</#if >
74
85
public <#if field.mandatory && field.definitionInParentType?has_content && !field.definitionInParentType.mandatory >${field.definitionInParentType.type} <#else >${field.type} </#if > get${field.name?cap_first } () {
75
- return ${field.name} ;
86
+ return ( ${field.name} == null || ${field.name} .isEmpty()) ? null : ${field.name} .get() ;
76
87
}
77
88
<#if !immutableModels >
78
89
<#if field.javaDoc?has_content >
@@ -86,7 +97,7 @@ public class ${className} implements java.io.Serializable<#if implements?has_con
86
97
@${field.deprecated.annotation}
87
98
</#if >
88
99
public void set${field.name?cap_first } (${field.type} ${field.name} ) {
89
- this.${field.name} = ${field.name} ;
100
+ this.${field.name} = Optional.ofNullable( ${field.name} ) ;
90
101
}
91
102
</#if >
92
103
@@ -133,7 +144,7 @@ public class ${className} implements java.io.Serializable<#if implements?has_con
133
144
joiner.add("${field.originalName} : " + ${field.name} );
134
145
</#if >
135
146
<#else >
136
- if (${field.name} != null) {
147
+ if (${field.name} != null && ${field.name} .isPresent() ) {
137
148
<#if toStringForRequest >
138
149
joiner.add("${field.originalName} : " + GraphQLRequestSerializer.getEntry(${field.name} <#if field.serializeUsingObjectMapper >, true</#if >));
139
150
<#else >
@@ -160,7 +171,7 @@ public class ${className} implements java.io.Serializable<#if implements?has_con
160
171
161
172
<#if fields?has_content >
162
173
<#list fields as field >
163
- private ${field.type} ${field.name} <#if field.defaultValue?has_content > = ${field.defaultValue} </#if >;
174
+ private Optional< ${field.type} > ${field.name} <#if field.defaultValue?has_content > = Optional.ofNullable( ${field.defaultValue} ) </#if >;
164
175
</#list >
165
176
</#if >
166
177
@@ -180,7 +191,7 @@ public class ${className} implements java.io.Serializable<#if implements?has_con
180
191
@${field.deprecated.annotation}
181
192
</#if >
182
193
public Builder set${field.name?cap_first } (${field.type} ${field.name} ) {
183
- this.${field.name} = ${field.name} ;
194
+ this.${field.name} = Optional.ofNullable( ${field.name} ) ;
184
195
return this;
185
196
}
186
197
0 commit comments