Sha256: 7074d5b41b55c7e9086b1c125e2ad6cd12fcff8f66c5ae630805e1689f984e10

Contents?: true

Size: 1.81 KB

Versions: 4

Compression:

Stored size: 1.81 KB

Contents

package org.embulk.spi;

import org.slf4j.Logger;
import org.embulk.config.Task;
import org.embulk.config.CommitReport;
import org.embulk.config.ConfigDiff;
import org.embulk.config.ConfigSource;
import org.embulk.config.TaskSource;
import org.embulk.plugin.PluginType;

public class Exec
{
    private static final InheritableThreadLocal<ExecSession> session = new InheritableThreadLocal<ExecSession>();

    private Exec() { }

    public static <T> T doWith(ExecSession session, ExecAction<T> action) throws Exception
    {
        Exec.session.set(session);
        try {
            return action.run();
        } finally {
            Exec.session.set(null);
        }
    }

    public static ExecSession session()
    {
        ExecSession session = Exec.session.get();
        if (session == null) {
            new NullPointerException().printStackTrace();
            throw new NullPointerException("Exec is used outside of Exec.doWith");
        }
        return session;
    }

    public static Logger getLogger(String name)
    {
        return session().getLogger(name);
    }

    public static Logger getLogger(Class<?> name)
    {
        return session().getLogger(name);
    }

    public static BufferAllocator getBufferAllocator()
    {
        return session().getBufferAllocator();
    }

    public static <T> T newPlugin(Class<T> iface, PluginType type)
    {
        return session().newPlugin(iface, type);
    }

    public static CommitReport newCommitReport()
    {
        return session().newCommitReport();
    }

    public static ConfigDiff newConfigDiff()
    {
        return session().newConfigDiff();
    }

    public static ConfigSource newConfigSource()
    {
        return session().newConfigSource();
    }

    public static TaskSource newTaskSource()
    {
        return session().newTaskSource();
    }
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
embulk-0.4.3 embulk-core/src/main/java/org/embulk/spi/Exec.java
embulk-0.4.2 embulk-core/src/main/java/org/embulk/spi/Exec.java
embulk-0.4.1 embulk-core/src/main/java/org/embulk/spi/Exec.java
embulk-0.4.0 embulk-core/src/main/java/org/embulk/spi/Exec.java