Sha256: e1e6eb307aaf0b6d0bc1b035936412ca06f051403735ecdbfb01c3393c27b4cc

Contents?: true

Size: 1.59 KB

Versions: 59

Compression:

Stored size: 1.59 KB

Contents

package org.embulk.standards;

import org.embulk.config.Config;
import org.embulk.config.ConfigDefault;
import org.embulk.config.ConfigSource;
import org.embulk.config.Task;
import org.embulk.config.TaskSource;
import org.embulk.spi.Column;
import org.embulk.spi.FilterPlugin;
import org.embulk.spi.PageOutput;
import org.embulk.spi.Schema;

import java.util.Map;

public class RenameFilterPlugin
        implements FilterPlugin
{
    public interface PluginTask
            extends Task
    {
        @Config("columns")
        @ConfigDefault("{}")
        Map<String, String> getRenameMap();
    }

    @Override
    public void transaction(ConfigSource config, Schema inputSchema,
                            FilterPlugin.Control control)
    {
        PluginTask task = config.loadConfig(PluginTask.class);
        Map<String, String> renameMap = task.getRenameMap();

        // check column_options is valid or not
        for (String columnName : renameMap.keySet()) {
            inputSchema.lookupColumn(columnName); // throws SchemaConfigException
        }

        Schema.Builder builder = Schema.builder();
        for (Column column : inputSchema.getColumns()) {
            String name = column.getName();
            if (renameMap.containsKey(name)) {
                name = renameMap.get(name);
            }
            builder.add(name, column.getType());
        }

        control.run(task.dump(), builder.build());
    }

    @Override
    public PageOutput open(TaskSource taskSource, Schema inputSchema,
                           Schema outputSchema, PageOutput output)
    {
        return output;
    }
}

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
embulk-0.8.13 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.13-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.12 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.12-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.11-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.11 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.10 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.10-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.9 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.9-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.8 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.8-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.7 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.7-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.6 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.6-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.5 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.5-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.4 embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java
embulk-0.8.4-java embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java