Sha256: a1725369ed738fe315949f92e6614269eb0a727775cb0e9d643b48cf31f4c7a3

Contents?: true

Size: 1.32 KB

Versions: 4

Compression:

Stored size: 1.32 KB

Contents

package org.embulk.output.cassandra.setter;

import com.datastax.driver.core.BoundStatement;
import com.datastax.driver.core.ColumnMetadata;
import org.embulk.spi.time.Timestamp;

import java.time.Instant;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class TimeColumnSetter extends CassandraColumnSetter
{
    public TimeColumnSetter(ColumnMetadata cassandraColumn)
    {
        super(cassandraColumn);
    }

    @Override
    public void setLongValue(Long value, BoundStatement statement)
    {
        statement.setTime(cassandraColumn.getName(), value);
    }

    @Override
    public void setDoubleValue(Double value, BoundStatement statement)
    {
        statement.setTime(cassandraColumn.getName(), value.longValue());
    }

    @Override
    public void setStringValue(String value, BoundStatement statement)
    {
        LocalTime time = LocalTime.parse(value);
        statement.setTime(cassandraColumn.getName(), time.toNanoOfDay());
    }

    @Override
    public void setTimestampValue(Timestamp value, BoundStatement statement)
    {
        ZonedDateTime datetime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(value.toEpochMilli()), ZoneId.of("UTC"));
        long nsec = datetime.toLocalTime().toNanoOfDay();

        statement.setTime(cassandraColumn.getName(), nsec);
    }
}

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