Sha256: e5945d6fb4ff0d2a88384dc24fb5d8d672cc29afb55226af1c00047aa3ca1a9b

Contents?: true

Size: 1.52 KB

Versions: 2

Compression:

Stored size: 1.52 KB

Contents

package org.embulk.filter.copy.forward;

import org.embulk.spi.Column;
import org.embulk.spi.ColumnVisitor;
import org.embulk.spi.PageReader;

public class OutForwardVisitor
    implements ColumnVisitor
{
    private final PageReader reader;
    private final OutForwardEventBuilder builder;

    public OutForwardVisitor(PageReader reader, OutForwardEventBuilder builder)
    {
        this.reader = reader;
        this.builder = builder;
    }

    private void nullOr(Column column, Runnable r)
    {
        if (reader.isNull(column)) {
            builder.setNull(column);
            return;
        }
        r.run();
    }

    @Override
    public void booleanColumn(Column column)
    {
        nullOr(column, () -> builder.setBoolean(column, reader.getBoolean(column)));
    }

    @Override
    public void longColumn(Column column)
    {
        nullOr(column, () -> builder.setLong(column, reader.getLong(column)));
    }

    @Override
    public void doubleColumn(Column column)
    {
        nullOr(column, () -> builder.setDouble(column, reader.getDouble(column)));
    }

    @Override
    public void stringColumn(Column column)
    {
        nullOr(column, () -> builder.setString(column, reader.getString(column)));
    }

    @Override
    public void timestampColumn(Column column)
    {
        nullOr(column, () -> builder.setTimestamp(column, reader.getTimestamp(column)));
    }

    @Override
    public void jsonColumn(Column column)
    {
        nullOr(column, () -> builder.setJson(column, reader.getJson(column)));
    }
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
embulk-filter-copy-0.0.2 src/main/java/org/embulk/filter/copy/forward/OutForwardVisitor.java
embulk-filter-copy-0.0.1 src/main/java/org/embulk/filter/copy/forward/OutForwardVisitor.java