com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator.java Source code

Java tutorial

Introduction

Here is the source code for com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator.java

Source

package com.fasterxml.jackson.databind.deser.impl;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.deser.SettableBeanProperty;
import com.fasterxml.jackson.databind.deser.ValueInstantiator;
import com.fasterxml.jackson.databind.util.ClassUtil;
import java.util.Collection;
import java.util.HashMap;

public final class PropertyBasedCreator {
    protected final Object[] _defaultValues;
    protected final HashMap<String, SettableBeanProperty> _properties;
    protected final SettableBeanProperty[] _propertiesWithInjectables;
    protected final int _propertyCount;
    protected final ValueInstantiator _valueInstantiator;

    protected PropertyBasedCreator(ValueInstantiator paramValueInstantiator,
            SettableBeanProperty[] paramArrayOfSettableBeanProperty, Object[] paramArrayOfObject) {
        this._valueInstantiator = paramValueInstantiator;
        this._properties = new HashMap();
        int i = paramArrayOfSettableBeanProperty.length;
        this._propertyCount = i;
        SettableBeanProperty[] arrayOfSettableBeanProperty = null;
        for (int j = 0; j < i; j++) {
            SettableBeanProperty localSettableBeanProperty = paramArrayOfSettableBeanProperty[j];
            this._properties.put(localSettableBeanProperty.getName(), localSettableBeanProperty);
            if (localSettableBeanProperty.getInjectableValueId() != null) {
                if (arrayOfSettableBeanProperty == null)
                    arrayOfSettableBeanProperty = new SettableBeanProperty[i];
                arrayOfSettableBeanProperty[j] = localSettableBeanProperty;
            }
        }
        this._defaultValues = paramArrayOfObject;
        this._propertiesWithInjectables = arrayOfSettableBeanProperty;
    }

    public static PropertyBasedCreator construct(DeserializationContext paramDeserializationContext,
            ValueInstantiator paramValueInstantiator, SettableBeanProperty[] paramArrayOfSettableBeanProperty) {
        int i = paramArrayOfSettableBeanProperty.length;
        SettableBeanProperty[] arrayOfSettableBeanProperty = new SettableBeanProperty[i];
        int j = 0;
        Object[] arrayOfObject = null;
        SettableBeanProperty localSettableBeanProperty;
        JsonDeserializer localJsonDeserializer;
        Object localObject1;
        if (j < i) {
            localSettableBeanProperty = paramArrayOfSettableBeanProperty[j];
            if (!localSettableBeanProperty.hasValueDeserializer())
                localSettableBeanProperty = localSettableBeanProperty
                        .withValueDeserializer(paramDeserializationContext.findContextualValueDeserializer(
                                localSettableBeanProperty.getType(), localSettableBeanProperty));
            arrayOfSettableBeanProperty[j] = localSettableBeanProperty;
            localJsonDeserializer = localSettableBeanProperty.getValueDeserializer();
            if (localJsonDeserializer == null) {
                localObject1 = null;
                label75: if ((localObject1 != null) || (!localSettableBeanProperty.getType().isPrimitive()))
                    break label156;
            }
        }
        label156: for (Object localObject2 = ClassUtil
                .defaultValue(localSettableBeanProperty.getType().getRawClass());; localObject2 = localObject1) {
            if (localObject2 != null) {
                if (arrayOfObject == null)
                    arrayOfObject = new Object[i];
                arrayOfObject[j] = localObject2;
            }
            j++;
            break;
            localObject1 = localJsonDeserializer.getNullValue();
            break label75;
            return new PropertyBasedCreator(paramValueInstantiator, arrayOfSettableBeanProperty, arrayOfObject);
        }
    }

    public Object build(DeserializationContext paramDeserializationContext,
            PropertyValueBuffer paramPropertyValueBuffer) {
        Object localObject = paramPropertyValueBuffer.handleIdValue(paramDeserializationContext,
                this._valueInstantiator.createFromObjectWith(paramDeserializationContext,
                        paramPropertyValueBuffer.getParameters(this._defaultValues)));
        for (PropertyValue localPropertyValue = paramPropertyValueBuffer
                .buffered(); localPropertyValue != null; localPropertyValue = localPropertyValue.next)
            localPropertyValue.assign(localObject);
        return localObject;
    }

    public SettableBeanProperty findCreatorProperty(String paramString) {
        return (SettableBeanProperty) this._properties.get(paramString);
    }

    public Collection<SettableBeanProperty> properties() {
        return this._properties.values();
    }

    public PropertyValueBuffer startBuilding(JsonParser paramJsonParser,
            DeserializationContext paramDeserializationContext, ObjectIdReader paramObjectIdReader) {
        PropertyValueBuffer localPropertyValueBuffer = new PropertyValueBuffer(paramJsonParser,
                paramDeserializationContext, this._propertyCount, paramObjectIdReader);
        if (this._propertiesWithInjectables != null)
            localPropertyValueBuffer.inject(this._propertiesWithInjectables);
        return localPropertyValueBuffer;
    }
}

/* Location:           /Users/dantheman/src/fffffffffattttt/basis/classes_dex2jar.jar
 * Qualified Name:     com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator
 * JD-Core Version:    0.6.2
 */