@@ -114,16 +114,16 @@ func getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.Nam
114
114
rValue := reflect .Indirect (reflect .ValueOf (node ))
115
115
kind := rValue .Kind ()
116
116
117
- switch kind {
117
+ if rValue .Type ().Implements (jsonPointableType ) {
118
+ r , err := node .(JSONPointable ).JSONLookup (decodedToken )
119
+ if err != nil {
120
+ return nil , kind , err
121
+ }
122
+ return r , kind , nil
123
+ }
118
124
125
+ switch kind {
119
126
case reflect .Struct :
120
- if rValue .Type ().Implements (jsonPointableType ) {
121
- r , err := node .(JSONPointable ).JSONLookup (decodedToken )
122
- if err != nil {
123
- return nil , kind , err
124
- }
125
- return r , kind , nil
126
- }
127
127
nm , ok := nameProvider .GetGoNameForType (rValue .Type (), decodedToken )
128
128
if ! ok {
129
129
return nil , kind , fmt .Errorf ("object has no field %q" , decodedToken )
@@ -161,17 +161,17 @@ func getSingleImpl(node interface{}, decodedToken string, nameProvider *swag.Nam
161
161
162
162
func setSingleImpl (node , data interface {}, decodedToken string , nameProvider * swag.NameProvider ) error {
163
163
rValue := reflect .Indirect (reflect .ValueOf (node ))
164
- switch rValue .Kind () {
165
164
166
- case reflect .Struct :
167
- if ns , ok := node .(JSONSetable ); ok { // pointer impl
168
- return ns .JSONSet (decodedToken , data )
169
- }
165
+ if ns , ok := node .(JSONSetable ); ok { // pointer impl
166
+ return ns .JSONSet (decodedToken , data )
167
+ }
170
168
171
- if rValue .Type ().Implements (jsonSetableType ) {
172
- return node .(JSONSetable ).JSONSet (decodedToken , data )
173
- }
169
+ if rValue .Type ().Implements (jsonSetableType ) {
170
+ return node .(JSONSetable ).JSONSet (decodedToken , data )
171
+ }
174
172
173
+ switch rValue .Kind () {
174
+ case reflect .Struct :
175
175
nm , ok := nameProvider .GetGoNameForType (rValue .Type (), decodedToken )
176
176
if ! ok {
177
177
return fmt .Errorf ("object has no field %q" , decodedToken )
@@ -270,22 +270,22 @@ func (p *Pointer) set(node, data interface{}, nameProvider *swag.NameProvider) e
270
270
rValue := reflect .Indirect (reflect .ValueOf (node ))
271
271
kind := rValue .Kind ()
272
272
273
- switch kind {
274
-
275
- case reflect .Struct :
276
- if rValue .Type ().Implements (jsonPointableType ) {
277
- r , err := node .(JSONPointable ).JSONLookup (decodedToken )
278
- if err != nil {
279
- return err
280
- }
281
- fld := reflect .ValueOf (r )
282
- if fld .CanAddr () && fld .Kind () != reflect .Interface && fld .Kind () != reflect .Map && fld .Kind () != reflect .Slice && fld .Kind () != reflect .Ptr {
283
- node = fld .Addr ().Interface ()
284
- continue
285
- }
286
- node = r
273
+ if rValue .Type ().Implements (jsonPointableType ) {
274
+ r , err := node .(JSONPointable ).JSONLookup (decodedToken )
275
+ if err != nil {
276
+ return err
277
+ }
278
+ fld := reflect .ValueOf (r )
279
+ if fld .CanAddr () && fld .Kind () != reflect .Interface && fld .Kind () != reflect .Map && fld .Kind () != reflect .Slice && fld .Kind () != reflect .Ptr {
280
+ node = fld .Addr ().Interface ()
287
281
continue
288
282
}
283
+ node = r
284
+ continue
285
+ }
286
+
287
+ switch kind {
288
+ case reflect .Struct :
289
289
nm , ok := nameProvider .GetGoNameForType (rValue .Type (), decodedToken )
290
290
if ! ok {
291
291
return fmt .Errorf ("object has no field %q" , decodedToken )
0 commit comments