@@ -192,11 +192,12 @@ object BeanIntrospector {
192
192
// create properties for all appropriate fields
193
193
val fields = for {
194
194
cls <- hierarchy
195
- classW = ClassW (cls)
195
+ scalaCaseObject = isScalaCaseObject(cls)
196
+ isScalaObject = ClassW (cls).isScalaObject
196
197
field <- cls.getDeclaredFields
197
198
name = maybePrivateName(field)
198
199
if ! name.contains('$' )
199
- if (classW. isScalaObject || isScalaCaseObject(cls) || isAcceptableField(field))
200
+ if (isScalaObject || scalaCaseObject || isAcceptableField(field))
200
201
beanGetter = findBeanGetter(cls, name)
201
202
beanSetter = findBeanSetter(cls, name)
202
203
} yield PropertyDescriptor (name, findConstructorParam(hierarchy.head, name), Some (field), findGetter(cls, name), findSetter(cls, name), beanGetter, beanSetter)
@@ -206,7 +207,7 @@ object BeanIntrospector {
206
207
// We also require that there is no field defined on the class matching the param name -
207
208
// the assumption is that if we have made it this far, the field/getter/setter combo would have been
208
209
// picked up if the field was valid. If we have not already added the field, and it's present, then
209
- // it must be somehow inappropriate (static, volitile , etc)
210
+ // it must be somehow inappropriate (static, volatile , etc)
210
211
// this catches the case where people explicitly write getter-like and setter-like methods
211
212
// (for example, compound properties)
212
213
// Note - this will discard 'dangling' getters as an introspected property - getters must have setters,
@@ -220,8 +221,8 @@ object BeanIntrospector {
220
221
if findField(cls, name).isEmpty
221
222
if ! name.contains('$' )
222
223
if ! fields.exists(_.name == name)
223
- getterProperty = getter.getAnnotation(classOf [JsonProperty ])
224
- setter = findSetter(cls, name) if setter.isDefined || (getterProperty != null && getterProperty.value != JsonProperty .USE_DEFAULT_NAME )
224
+ getterProperty = Option ( getter.getAnnotation(classOf [JsonProperty ]) )
225
+ setter = findSetter(cls, name) if setter.isDefined || (getterProperty.isDefined && getterProperty.get .value != JsonProperty .USE_DEFAULT_NAME )
225
226
beanGetter = findBeanGetter(cls, name)
226
227
beanSetter = findBeanSetter(cls, name)
227
228
} yield PropertyDescriptor (name, None , None , Some (getter), setter, beanGetter, beanSetter)
0 commit comments