Sha256: 9f9de5660ec2906cea5c78271f46fc23d2fa7dc33c13e9f1caf428a855f11f9b

Contents?: true

Size: 1.75 KB

Versions: 4

Compression:

Stored size: 1.75 KB

Contents

package org.embulk.output.cassandra.setter;

import com.google.common.collect.Lists;
import org.msgpack.value.Value;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class ValueConverter
{
    private ValueConverter()
    {
    }

    public static List<Object> convertList(List<Value> list)
    {
        return Lists.transform(list, (val) -> convertValueToPlain(val));
    }

    public static Map<Object, Object> convertMap(Map<Value, Value> map)
    {
        return map.entrySet().stream().collect(Collectors.toMap(
                (Map.Entry<Value, Value> entry) -> {
                    if (!entry.getKey().isStringValue()) {
                        throw new RuntimeException("map key is");
                    }
                    return entry.getKey().asStringValue().toString();
                },
                (Map.Entry<Value, Value> entry) -> {
                    Value val = entry.getValue();
                    return convertValueToPlain(val);
                }
        ));
    }

    private static Object convertValueToPlain(Value val)
    {
        if (val.isNilValue()) {
            return null;
        }
        if (val.isStringValue()) {
            return val.asStringValue().toString();
        }
        if (val.isBooleanValue()) {
            return val.asBooleanValue().getBoolean();
        }
        if (val.isIntegerValue()) {
            return val.asIntegerValue().asLong();
        }
        if (val.isFloatValue()) {
            return val.asFloatValue().toDouble();
        }
        if (val.isArrayValue()) {
            return convertList(val.asArrayValue().list());
        }
        if (val.isMapValue()) {
            return convertMap(val.asMapValue().map());
        }

        return null;
    }
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
embulk-output-cassandra-0.3.0 src/main/java/org/embulk/output/cassandra/setter/ValueConverter.java
embulk-output-cassandra-0.2.0 src/main/java/org/embulk/output/cassandra/setter/ValueConverter.java
embulk-output-cassandra-0.1.1 src/main/java/org/embulk/output/cassandra/setter/ValueConverter.java
embulk-output-cassandra-0.1.0 src/main/java/org/embulk/output/cassandra/setter/ValueConverter.java