Sha256: 7c65b57cacd2c1f4e4675a71ae5b04cd0e1aeb2351b990cf49556122c15ee046

Contents?: true

Size: 1.7 KB

Versions: 78

Compression:

Stored size: 1.7 KB

Contents

package org.embulk.spi.util.dynamic;

import java.math.RoundingMode;
import com.google.common.math.DoubleMath;
import org.embulk.spi.Column;
import org.embulk.spi.PageBuilder;
import org.embulk.spi.time.Timestamp;
import org.msgpack.value.Value;

public class LongColumnSetter
        extends AbstractDynamicColumnSetter
{
    public LongColumnSetter(PageBuilder pageBuilder, Column column,
            DefaultValueSetter defaultValue)
    {
        super(pageBuilder, column, defaultValue);
    }

    @Override
    public void setNull()
    {
        pageBuilder.setNull(column);
    }

    @Override
    public void set(boolean v)
    {
        pageBuilder.setLong(column, v ? 1L : 0L);
    }

    @Override
    public void set(long v)
    {
        pageBuilder.setLong(column, v);
    }

    @Override
    public void set(double v)
    {
        long lv;
        try {
            // TODO configurable rounding mode
            lv = DoubleMath.roundToLong(v, RoundingMode.HALF_UP);
        }
        catch (ArithmeticException ex) {
            // NaN / Infinite / -Infinite
            defaultValue.setLong(pageBuilder, column);
            return;
        }
        pageBuilder.setLong(column, lv);
    }

    @Override
    public void set(String v)
    {
        long lv;
        try {
            lv = Long.parseLong(v);
        }
        catch (NumberFormatException e) {
            defaultValue.setLong(pageBuilder, column);
            return;
        }
        pageBuilder.setLong(column, lv);
    }

    @Override
    public void set(Timestamp v)
    {
        pageBuilder.setLong(column, v.getEpochSecond());
    }

    @Override
    public void set(Value v)
    {
        defaultValue.setLong(pageBuilder, column);
    }
}

Version data entries

78 entries across 78 versions & 1 rubygems

Version Path
embulk-0.8.39 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.39-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.38 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.38-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.37 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.37-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.36 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.36-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.35 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.35-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.34 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.34-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.33 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.33-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.32 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.32-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.31 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.31-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.30 embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
embulk-0.8.30-java embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java