Package com.facebook.presto.jdbc.internal.jackson.datatype.joda.deser

Source Code of com.facebook.presto.jdbc.internal.jackson.datatype.joda.deser.PeriodDeserializer

package com.facebook.presto.jdbc.internal.jackson.datatype.joda.deser;

import java.io.IOException;

import com.facebook.presto.jdbc.internal.joda.time.Period;

import com.facebook.presto.jdbc.internal.jackson.core.JsonParser;
import com.facebook.presto.jdbc.internal.jackson.core.JsonProcessingException;
import com.facebook.presto.jdbc.internal.jackson.core.JsonToken;
import com.facebook.presto.jdbc.internal.jackson.databind.DeserializationContext;

public class PeriodDeserializer
    extends JodaDeserializerBase<Period>
{
    public PeriodDeserializer() { super(Period.class); }
  
    @Override
    public Period deserialize(JsonParser jp, DeserializationContext ctxt)
            throws IOException, JsonProcessingException
    {
        // TODO: perhaps support array of numbers...
        //if (jp.isExpectedStartArrayToken()) { ]
        switch (jp.getCurrentToken()) {
        case VALUE_NUMBER_INT: // assume it's millisecond count
            return new Period(jp.getLongValue());           
        case VALUE_STRING:
            return new Period(jp.getText());
        }
        throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "expected JSON Number or String");
   }
}
TOP

Related Classes of com.facebook.presto.jdbc.internal.jackson.datatype.joda.deser.PeriodDeserializer

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.