16
16
package io .fabric8 .kubernetes .model .jackson ;
17
17
18
18
import com .fasterxml .jackson .core .JsonParser ;
19
- import com .fasterxml .jackson .databind .DeserializationConfig ;
20
19
import com .fasterxml .jackson .databind .DeserializationContext ;
21
- import com .fasterxml .jackson .databind .JsonDeserializer ;
20
+ import com .fasterxml .jackson .databind .JavaType ;
21
+ import com .fasterxml .jackson .databind .JsonMappingException ;
22
22
import com .fasterxml .jackson .databind .PropertyName ;
23
+ import com .fasterxml .jackson .databind .SerializerProvider ;
23
24
import com .fasterxml .jackson .databind .deser .NullValueProvider ;
24
25
import com .fasterxml .jackson .databind .deser .SettableAnyProperty ;
25
26
import com .fasterxml .jackson .databind .deser .SettableBeanProperty ;
26
27
import com .fasterxml .jackson .databind .exc .MismatchedInputException ;
27
- import com .fasterxml .jackson .databind .introspect .AnnotatedMember ;
28
+ import com .fasterxml .jackson .databind .introspect .ObjectIdInfo ;
29
+ import com .fasterxml .jackson .databind .jsonFormatVisitors .JsonObjectFormatVisitor ;
28
30
29
31
import java .io .IOException ;
30
32
import java .lang .annotation .Annotation ;
31
33
import java .util .function .BooleanSupplier ;
32
34
33
35
/**
34
- * This concrete sub-class encapsulates a {@link SettableBeanProperty} delegate that is always tried first.
36
+ * This concrete subclass encapsulates a {@link SettableBeanProperty} delegate that is always tried first.
35
37
*
36
38
* <p>
37
39
* A fall-back mechanism is implemented in the deserializeAndSet methods to allow field values that don't match the
38
40
* target type to be preserved in the anySetter method if exists.
39
41
*/
40
- public class SettableBeanPropertyDelegate extends SettableBeanProperty {
42
+ public class SettableBeanPropertyDelegate extends SettableBeanProperty . Delegating {
41
43
42
- private final SettableBeanProperty delegate ;
43
44
private final SettableAnyProperty anySetter ;
44
45
private final transient BooleanSupplier useAnySetter ;
45
46
46
47
SettableBeanPropertyDelegate (SettableBeanProperty delegate , SettableAnyProperty anySetter , BooleanSupplier useAnySetter ) {
47
48
super (delegate );
48
- this .delegate = delegate ;
49
49
this .anySetter = anySetter ;
50
50
this .useAnySetter = useAnySetter ;
51
51
}
@@ -54,64 +54,113 @@ public class SettableBeanPropertyDelegate extends SettableBeanProperty {
54
54
* {@inheritDoc}
55
55
*/
56
56
@ Override
57
- public SettableBeanProperty withValueDeserializer ( JsonDeserializer <?> deser ) {
58
- return new SettableBeanPropertyDelegate (delegate . withValueDeserializer ( deser ) , anySetter , useAnySetter );
57
+ protected SettableBeanProperty withDelegate ( SettableBeanProperty d ) {
58
+ return new SettableBeanPropertyDelegate (d , anySetter , useAnySetter );
59
59
}
60
60
61
61
/**
62
62
* {@inheritDoc}
63
63
*/
64
64
@ Override
65
- public SettableBeanProperty withName ( PropertyName newName ) {
66
- return new SettableBeanPropertyDelegate ( delegate .withName ( newName ), anySetter , useAnySetter );
65
+ public void markAsIgnorable ( ) {
66
+ delegate .markAsIgnorable ( );
67
67
}
68
68
69
69
/**
70
70
* {@inheritDoc}
71
71
*/
72
72
@ Override
73
- public SettableBeanProperty withNullProvider ( NullValueProvider nva ) {
74
- return new SettableBeanPropertyDelegate ( delegate .withNullProvider ( nva ), anySetter , useAnySetter );
73
+ public boolean isIgnorable ( ) {
74
+ return delegate .isIgnorable ( );
75
75
}
76
76
77
77
/**
78
78
* {@inheritDoc}
79
79
*/
80
80
@ Override
81
- public AnnotatedMember getMember ( ) {
82
- return delegate .getMember ( );
81
+ public void setViews ( Class <?>[] views ) {
82
+ delegate .setViews ( views );
83
83
}
84
84
85
85
/**
86
86
* {@inheritDoc}
87
87
*/
88
88
@ Override
89
- public <A extends Annotation > A getAnnotation (Class <A > acls ) {
90
- return delegate .getAnnotation (acls );
89
+ public <A extends Annotation > A getContextAnnotation (Class <A > acls ) {
90
+ return delegate .getContextAnnotation (acls );
91
91
}
92
92
93
93
/**
94
94
* {@inheritDoc}
95
95
*/
96
96
@ Override
97
- public void fixAccess ( DeserializationConfig config ) {
98
- delegate .fixAccess ( config );
97
+ public PropertyName getWrapperName ( ) {
98
+ return delegate .getWrapperName ( );
99
99
}
100
100
101
101
/**
102
102
* {@inheritDoc}
103
103
*/
104
104
@ Override
105
- public void markAsIgnorable () {
106
- delegate .markAsIgnorable ();
105
+ public NullValueProvider getNullValueProvider () {
106
+ return delegate .getNullValueProvider ();
107
107
}
108
108
109
109
/**
110
110
* {@inheritDoc}
111
111
*/
112
112
@ Override
113
- public boolean isIgnorable () {
114
- return delegate .isIgnorable ();
113
+ public void depositSchemaProperty (JsonObjectFormatVisitor objectVisitor , SerializerProvider provider )
114
+ throws JsonMappingException {
115
+ delegate .depositSchemaProperty (objectVisitor , provider );
116
+ }
117
+
118
+ /**
119
+ * {@inheritDoc}
120
+ */
121
+ @ Override
122
+ public JavaType getType () {
123
+ return delegate .getType ();
124
+ }
125
+
126
+ /**
127
+ * {@inheritDoc}
128
+ */
129
+ @ Override
130
+ public PropertyName getFullName () {
131
+ return delegate .getFullName ();
132
+ }
133
+
134
+ /**
135
+ * {@inheritDoc}
136
+ */
137
+ @ Override
138
+ public void setManagedReferenceName (String n ) {
139
+ delegate .setManagedReferenceName (n );
140
+ }
141
+
142
+ /**
143
+ * {@inheritDoc}
144
+ */
145
+ @ Override
146
+ public SettableBeanProperty withSimpleName (String simpleName ) {
147
+ return _with (delegate .withSimpleName (simpleName ));
148
+ }
149
+
150
+ /**
151
+ * {@inheritDoc}
152
+ */
153
+ @ Override
154
+ public void setObjectIdInfo (ObjectIdInfo objectIdInfo ) {
155
+ delegate .setObjectIdInfo (objectIdInfo );
156
+ }
157
+
158
+ /**
159
+ * {@inheritDoc}
160
+ */
161
+ @ Override
162
+ public String toString () {
163
+ return delegate .toString ();
115
164
}
116
165
117
166
/**
@@ -151,23 +200,7 @@ public Object deserializeSetAndReturn(JsonParser p, DeserializationContext ctxt,
151
200
} catch (MismatchedInputException ex ) {
152
201
deserializeAndSet (p , ctxt , instance );
153
202
}
154
- return null ;
155
- }
156
-
157
- /**
158
- * {@inheritDoc}
159
- */
160
- @ Override
161
- public void set (Object instance , Object value ) throws IOException {
162
- delegate .set (instance , value );
163
- }
164
-
165
- /**
166
- * {@inheritDoc}
167
- */
168
- @ Override
169
- public Object setAndReturn (Object instance , Object value ) throws IOException {
170
- return delegate .setAndReturn (instance , value );
203
+ return instance ;
171
204
}
172
205
173
206
private boolean shouldUseAnySetter () {
0 commit comments