| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 
 | protected List<BeanPropertyWriter> findBeanProperties(SerializerProvider prov,BeanDescription beanDesc, BeanSerializerBuilder builder)
 throws JsonMappingException
 {
 List<BeanPropertyDefinition> properties = beanDesc.findProperties();
 final SerializationConfig config = prov.getConfig();
 
 
 removeIgnorableTypes(config, beanDesc, properties);
 
 
 if (config.isEnabled(MapperFeature.REQUIRE_SETTERS_FOR_GETTERS)) {
 removeSetterlessGetters(config, beanDesc, properties);
 }
 
 
 if (properties.isEmpty()) {
 return null;
 }
 
 boolean staticTyping = usesStaticTyping(config, beanDesc, null);
 PropertyBuilder pb = constructPropertyBuilder(config, beanDesc);
 
 ArrayList<BeanPropertyWriter> result = new ArrayList<BeanPropertyWriter>(properties.size());
 for (BeanPropertyDefinition property : properties) {
 final AnnotatedMember accessor = property.getAccessor();
 
 if (property.isTypeId()) {
 if (accessor != null) {
 builder.setTypeId(accessor);
 }
 continue;
 }
 
 AnnotationIntrospector.ReferenceProperty refType = property.findReferenceType();
 if (refType != null && refType.isBackReference()) {
 continue;
 }
 if (accessor instanceof AnnotatedMethod) {
 result.add(_constructWriter(prov, property, pb, staticTyping, (AnnotatedMethod) accessor));
 } else {
 result.add(_constructWriter(prov, property, pb, staticTyping, (AnnotatedField) accessor));
 }
 }
 return result;
 }
 
 
 public AnnotatedMember getAccessor(){
 AnnotatedMember m = getGetter();
 if (m == null) {
 m = getField();
 }
 return m;
 }
 
 
 |