All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.codehaus.jackson.map.ext.JodaSerializers Maven / Gradle / Ivy

Go to download

Data Mapper package is a high-performance data binding package built on Jackson JSON processor

There is a newer version: 1.9.13
Show newest version
package org.codehaus.jackson.map.ext;

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

import org.joda.time.DateTime;

import org.codehaus.jackson.*;
import org.codehaus.jackson.map.*;
import org.codehaus.jackson.map.ser.SerializerBase;
import org.codehaus.jackson.map.util.Provider;

/**
 * Provider for serializers that handle some basic data types
 * for Joda date/time library.
 *
 * @since 1.4
 */
public class JodaSerializers
    implements Provider,JsonSerializer>>
{
    final static HashMap,JsonSerializer> _serializers = new HashMap,JsonSerializer>();
    static {
        _serializers.put(DateTime.class, new DateTimeSerializer());
    }

    public Collection,JsonSerializer>> provide() {
        return _serializers.entrySet();
    }

    /*
    ////////////////////////////////////////////////////////////////////////
    // Concrete deserializers
    ////////////////////////////////////////////////////////////////////////
    */

    public final static class DateTimeSerializer
        extends SerializerBase
    {
        @Override
        public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider)
            throws IOException, JsonGenerationException
        {
            if (provider.isEnabled(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS)) {
                jgen.writeNumber(value.getMillis());
            } else {
                jgen.writeString(value.toString());
            }
        }
    
        @Override
        public JsonNode getSchema(SerializerProvider provider, java.lang.reflect.Type typeHint)
        {
            return createSchemaNode(provider.isEnabled(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS)
                    ? "number" : "string", true);
        }
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy