Sha256: 0c2422d0dd4e48fa83a97e3c4e878042218d16bc259194c1892870f4ded28cfa

Contents?: true

Size: 1.62 KB

Versions: 51

Compression:

Stored size: 1.62 KB

Contents

package org.embulk.spi.type;

import java.util.HashMap;
import java.util.Map;
import java.io.IOException;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableMap;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer;
import com.fasterxml.jackson.databind.JsonMappingException;
import org.embulk.config.ModelManager;

public class TypeDeserializer
        extends FromStringDeserializer<Type>
{
    private static final Map<String, Type> stringToTypeMap;

    static {
        ImmutableMap.Builder<String, Type> builder = ImmutableMap.builder();
        builder.put(BooleanType.BOOLEAN.getName(), BooleanType.BOOLEAN);
        builder.put(LongType.LONG.getName(), LongType.LONG);
        builder.put(DoubleType.DOUBLE.getName(), DoubleType.DOUBLE);
        builder.put(StringType.STRING.getName(), StringType.STRING);
        builder.put(TimestampType.TIMESTAMP.getName(), TimestampType.TIMESTAMP);
        stringToTypeMap = builder.build();
    }

    public TypeDeserializer()
    {
        super(Type.class);
    }

    @Override
    protected Type _deserialize(String value, DeserializationContext context)
            throws IOException
    {
        Type t = stringToTypeMap.get(value);
        if (t == null) {
            throw new JsonMappingException(
                    String.format("Unknown type name '%s'. Supported types are: %s",
                        value,
                        Joiner.on(", ").join(stringToTypeMap.keySet())));
        }
        return t;
    }
}

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
embulk-0.6.27 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.26 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.25 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.24 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.23 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.22 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.21 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.20 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.19 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.18 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.17 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.16 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.15 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.14 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.13 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.12 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.11 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.10 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.9 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java
embulk-0.6.8 embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java