org.opentestsystem.delivery.testadmin.domain.TZBasedDateTimeDeserialier.java Source code

Java tutorial

Introduction

Here is the source code for org.opentestsystem.delivery.testadmin.domain.TZBasedDateTimeDeserialier.java

Source

/*******************************************************************************
 * Educational Online Test Delivery System
 * Copyright (c) 2013 American Institutes for Research
 * 
 * Distributed under the AIR Open Source License, Version 1.0
 * See accompanying file AIR-License-1_0.txt or at
 * http://www.smarterapp.org/documents/American_Institutes_for_Research_Open_Source_Software_License.pdf
 ******************************************************************************/

package org.opentestsystem.delivery.testadmin.domain;

import java.io.IOException;

import org.joda.time.DateTime;
import org.joda.time.format.ISODateTimeFormat;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.datatype.joda.deser.DateTimeDeserializer;

import static com.fasterxml.jackson.datatype.joda.cfg.FormatConfig.DEFAULT_DATETIME_PRINTER;

public class TZBasedDateTimeDeserialier extends JsonDeserializer<DateTime> {
    DateTimeDeserializer dateTimeDeSerializer;

    public TZBasedDateTimeDeserialier() {
        dateTimeDeSerializer = new DateTimeDeserializer(DateTime.class, DEFAULT_DATETIME_PRINTER);
    }

    @Override
    public DateTime deserialize(JsonParser jp, DeserializationContext ctxt)
            throws IOException, JsonProcessingException {
        String stringValue = jp.getText().trim();
        if (stringValue == null || stringValue.trim().isEmpty())
            return null;
        return ISODateTimeFormat.dateTimeParser().parseDateTime(stringValue);
    }
}