protected void addReferenceProperties(DeserializationContext paramDeserializationContext, BeanDescription paramBeanDescription, BeanDeserializerBuilder paramBeanDeserializerBuilder) { Map localMap = paramBeanDescription.findBackReferenceProperties(); if (localMap != null) { Iterator localIterator = localMap.entrySet().iterator(); while (localIterator.hasNext()) { Map.Entry localEntry = (Map.Entry)localIterator.next(); String str = (String)localEntry.getKey(); AnnotatedMember localAnnotatedMember = (AnnotatedMember)localEntry.getValue(); Object localObject; if ((localAnnotatedMember instanceof AnnotatedMethod)) localObject = ((AnnotatedMethod)localAnnotatedMember).getGenericParameterType(0); else localObject = localAnnotatedMember.getRawType(); paramBeanDeserializerBuilder.addBackReferenceProperty(str, constructSettableProperty(paramDeserializationContext, paramBeanDescription, SimpleBeanPropertyDefinition.construct(paramDeserializationContext.getConfig(), localAnnotatedMember), (Type)localObject)); } } }
/** * Method that will find if bean has any managed- or back-reference properties, * and if so add them to bean, to be linked during resolution phase. */ protected void addReferenceProperties(DeserializationContext ctxt, BeanDescription beanDesc, BeanDeserializerBuilder builder) throws JsonMappingException { // and then back references, not necessarily found as regular properties Map<String,AnnotatedMember> refs = beanDesc.findBackReferenceProperties(); if (refs != null) { for (Map.Entry<String, AnnotatedMember> en : refs.entrySet()) { String name = en.getKey(); AnnotatedMember m = en.getValue(); Type genericType; if (m instanceof AnnotatedMethod) { genericType = ((AnnotatedMethod) m).getGenericParameterType(0); } else { genericType = m.getRawType(); } SimpleBeanPropertyDefinition propDef = new SimpleBeanPropertyDefinition(m); builder.addBackReferenceProperty(name, constructSettableProperty( ctxt, beanDesc, propDef, genericType)); } } }
public JsonDeserializer<Object> buildThrowableDeserializer(DeserializationContext paramDeserializationContext, JavaType paramJavaType, BeanDescription paramBeanDescription) { DeserializationConfig localDeserializationConfig = paramDeserializationContext.getConfig(); BeanDeserializerBuilder localBeanDeserializerBuilder1 = constructBeanDeserializerBuilder(paramDeserializationContext, paramBeanDescription); BeanDeserializerBuilder localBeanDeserializerBuilder2 = localBeanDeserializerBuilder1; localBeanDeserializerBuilder1.setValueInstantiator(findValueInstantiator(paramDeserializationContext, paramBeanDescription)); addBeanProps(paramDeserializationContext, paramBeanDescription, localBeanDeserializerBuilder2); AnnotatedMethod localAnnotatedMethod = paramBeanDescription.findMethod("initCause", INIT_CAUSE_PARAMS); if (localAnnotatedMethod != null) { SettableBeanProperty localSettableBeanProperty = constructSettableProperty(paramDeserializationContext, paramBeanDescription, SimpleBeanPropertyDefinition.construct(paramDeserializationContext.getConfig(), localAnnotatedMethod, "cause"), localAnnotatedMethod.getGenericParameterType(0)); if (localSettableBeanProperty != null) localBeanDeserializerBuilder2.addOrReplaceProperty(localSettableBeanProperty, true); } localBeanDeserializerBuilder2.addIgnorable("localizedMessage"); localBeanDeserializerBuilder2.addIgnorable("suppressed"); localBeanDeserializerBuilder2.addIgnorable("message"); if (this._factoryConfig.hasDeserializerModifiers()) { Iterator localIterator2 = this._factoryConfig.deserializerModifiers().iterator(); while (localIterator2.hasNext()) localBeanDeserializerBuilder2 = ((BeanDeserializerModifier)localIterator2.next()).updateBuilder(localDeserializationConfig, paramBeanDescription, localBeanDeserializerBuilder2); } JsonDeserializer localJsonDeserializer = localBeanDeserializerBuilder2.build(); Object localObject = localJsonDeserializer; if ((localJsonDeserializer instanceof BeanDeserializer)) localObject = new ThrowableDeserializer((BeanDeserializer)localObject); if (this._factoryConfig.hasDeserializerModifiers()) { Iterator localIterator1 = this._factoryConfig.deserializerModifiers().iterator(); while (localIterator1.hasNext()) localObject = ((BeanDeserializerModifier)localIterator1.next()).modifyDeserializer(localDeserializationConfig, paramBeanDescription, (JsonDeserializer)localObject); } return localObject; }
BeanIdentifierPropertyWriter(final SerializationConfig config) { super( SimpleBeanPropertyDefinition.construct( config, null, PROPERTY_NAME), EMPTY_ANNOTATION_MAP, STRING_JAVA_TYPE); }
BeanClassPropertyWriter(final SerializationConfig config) { super( SimpleBeanPropertyDefinition.construct( config, null, PROPERTY_NAME), EMPTY_ANNOTATION_MAP, STRING_JAVA_TYPE); }