Sha256: 7c1ecae30c0977d2a0328b158aa9d293e7a3330cc1b0f57373f750d861c5619c
Contents?: true
Size: 1.55 KB
Versions: 39
Compression:
Stored size: 1.55 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; 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.setDouble(column, v.getEpochSecond()); } }
Version data entries
39 entries across 39 versions & 1 rubygems