Package com.facebook.presto.hive.shaded.org.codehaus.jackson.map.deser.impl

Source Code of com.facebook.presto.hive.shaded.org.codehaus.jackson.map.deser.impl.UnwrappedPropertyHandler

package com.facebook.presto.hive.shaded.org.codehaus.jackson.map.deser.impl;

import java.io.IOException;
import java.util.*;

import com.facebook.presto.hive.shaded.org.codehaus.jackson.JsonParser;
import com.facebook.presto.hive.shaded.org.codehaus.jackson.JsonProcessingException;
import com.facebook.presto.hive.shaded.org.codehaus.jackson.map.DeserializationContext;
import com.facebook.presto.hive.shaded.org.codehaus.jackson.map.deser.SettableBeanProperty;
import com.facebook.presto.hive.shaded.org.codehaus.jackson.util.TokenBuffer;

/**
* Object that is responsible for handling acrobatics related to
* deserializing "unwrapped" values; sets of properties that are
* embedded (inlined) as properties of parent JSON object.
*
* @since 1.9
*/
public class UnwrappedPropertyHandler
{
    protected final ArrayList<SettableBeanProperty> _properties = new ArrayList<SettableBeanProperty>();
   
    public UnwrappedPropertyHandler()  { }

    public void addProperty(SettableBeanProperty property) {
        _properties.add(property);
    }

    public Object processUnwrapped(JsonParser originalParser, DeserializationContext ctxt, Object bean,
            TokenBuffer buffered)
        throws IOException, JsonProcessingException
    {
        for (int i = 0, len = _properties.size(); i < len; ++i) {
            SettableBeanProperty prop = _properties.get(i);
            JsonParser jp = buffered.asParser();
            jp.nextToken();
            prop.deserializeAndSet(jp, ctxt, bean);
        }
        return bean;
    }
}
TOP

Related Classes of com.facebook.presto.hive.shaded.org.codehaus.jackson.map.deser.impl.UnwrappedPropertyHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.