package com.fasterxml.jackson.databind.deser.impl; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.PropertyName; import com.fasterxml.jackson.databind.deser.SettableBeanProperty; import com.fasterxml.jackson.databind.introspect.AnnotatedField; import com.fasterxml.jackson.databind.introspect.AnnotatedMember; import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition; import com.fasterxml.jackson.databind.jsontype.TypeDeserializer; import com.fasterxml.jackson.databind.util.Annotations; import java.io.IOException; import java.lang.annotation.Annotation; import java.lang.reflect.Field; public final class FieldProperty extends SettableBeanProperty { private static final long serialVersionUID = 1; protected final AnnotatedField _annotated; protected final transient Field _field; public FieldProperty(BeanPropertyDefinition beanPropertyDefinition, JavaType javaType, TypeDeserializer typeDeserializer, Annotations annotations, AnnotatedField annotatedField) { super(beanPropertyDefinition, javaType, typeDeserializer, annotations); this._annotated = annotatedField; this._field = annotatedField.getAnnotated(); } protected FieldProperty(FieldProperty fieldProperty, JsonDeserializer<?> jsonDeserializer) { super(fieldProperty, jsonDeserializer); this._annotated = fieldProperty._annotated; this._field = fieldProperty._field; } protected FieldProperty(FieldProperty fieldProperty, PropertyName propertyName) { super(fieldProperty, propertyName); this._annotated = fieldProperty._annotated; this._field = fieldProperty._field; } protected FieldProperty(FieldProperty fieldProperty, Field field) { super(fieldProperty); this._annotated = fieldProperty._annotated; if (field != null) { this._field = field; return; } throw new IllegalArgumentException("No Field passed for property '" + fieldProperty.getName() + "' (class " + fieldProperty.getDeclaringClass().getName() + ")"); } @Override // com.fasterxml.jackson.databind.deser.SettableBeanProperty public FieldProperty withName(PropertyName propertyName) { return new FieldProperty(this, propertyName); } @Override // com.fasterxml.jackson.databind.deser.SettableBeanProperty public FieldProperty withValueDeserializer(JsonDeserializer<?> jsonDeserializer) { return new FieldProperty(this, jsonDeserializer); } @Override // com.fasterxml.jackson.databind.BeanProperty, com.fasterxml.jackson.databind.deser.SettableBeanProperty public <A extends Annotation> A getAnnotation(Class<A> cls) { return (A) this._annotated.getAnnotation(cls); } @Override // com.fasterxml.jackson.databind.BeanProperty, com.fasterxml.jackson.databind.deser.SettableBeanProperty public AnnotatedMember getMember() { return this._annotated; } @Override // com.fasterxml.jackson.databind.deser.SettableBeanProperty public void deserializeAndSet(JsonParser jsonParser, DeserializationContext deserializationContext, Object obj) throws IOException, JsonProcessingException { set(obj, deserialize(jsonParser, deserializationContext)); } @Override // com.fasterxml.jackson.databind.deser.SettableBeanProperty public Object deserializeSetAndReturn(JsonParser jsonParser, DeserializationContext deserializationContext, Object obj) throws IOException, JsonProcessingException { return setAndReturn(obj, deserialize(jsonParser, deserializationContext)); } @Override // com.fasterxml.jackson.databind.deser.SettableBeanProperty public final void set(Object obj, Object obj2) throws IOException { try { this._field.set(obj, obj2); } catch (Exception e) { _throwAsIOE(e, obj2); } } @Override // com.fasterxml.jackson.databind.deser.SettableBeanProperty public Object setAndReturn(Object obj, Object obj2) throws IOException { try { this._field.set(obj, obj2); } catch (Exception e) { _throwAsIOE(e, obj2); } return obj; } /* access modifiers changed from: package-private */ public Object readResolve() { return new FieldProperty(this, this._annotated.getAnnotated()); } }