Sha256: a620f9e969cf366fe9509cabe53f91e117ef2591ccfaad8d33bbe10fcd7c6b2c

Contents?: true

Size: 1.13 KB

Versions: 4

Compression:

Stored size: 1.13 KB

Contents

package org.embulk.output.cassandra.setter;

import com.datastax.driver.core.BoundStatement;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ColumnMetadata;
import com.datastax.driver.core.TupleType;
import com.datastax.driver.core.TupleValue;
import org.msgpack.value.Value;

import java.util.List;

public class TupleColumnSetter extends CassandraColumnSetter
{
    private final Cluster cluster;

    public TupleColumnSetter(ColumnMetadata cassandraColumn, Cluster cluster)
    {
        super(cassandraColumn);
        this.cluster = cluster;
    }

    @Override
    public void setJsonValue(Value value, BoundStatement statement)
    {
        if (!value.isArrayValue()) {
            throw new RuntimeException(value.toJson() + " is not array value");
        }

        TupleType tupleType = cluster.getMetadata().newTupleType(((TupleType) cassandraColumn.getType()).getComponentTypes());
        List<Object> list = ValueConverter.convertList(value.asArrayValue().list());
        TupleValue tupleValue = tupleType.newValue(list.toArray());
        statement.setTupleValue(cassandraColumn.getName(), tupleValue);
    }
}

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/TupleColumnSetter.java
embulk-output-cassandra-0.2.0 src/main/java/org/embulk/output/cassandra/setter/TupleColumnSetter.java
embulk-output-cassandra-0.1.1 src/main/java/org/embulk/output/cassandra/setter/TupleColumnSetter.java
embulk-output-cassandra-0.1.0 src/main/java/org/embulk/output/cassandra/setter/TupleColumnSetter.java