All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.embulk.spi.ProcessTask Maven / Gradle / Ivy

package org.embulk.spi;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import org.embulk.config.TaskSource;
import org.embulk.plugin.PluginType;
import org.embulk.spi.util.ExecutorsInternal;

public class ProcessTask {
    private final PluginType inputPluginType;
    private final PluginType outputPluginType;
    private final List filterPluginTypes;
    private final TaskSource inputTaskSource;
    private final TaskSource outputTaskSource;
    private final List filterTaskSources;
    private final List schemas;
    private final Schema executorSchema;
    private TaskSource executorTaskSource;

    @JsonCreator
    public ProcessTask(
            @JsonProperty("inputType") PluginType inputPluginType,
            @JsonProperty("outputType") PluginType outputPluginType,
            @JsonProperty("filterTypes") List filterPluginTypes,
            @JsonProperty("inputTask") TaskSource inputTaskSource,
            @JsonProperty("outputTask") TaskSource outputTaskSource,
            @JsonProperty("filterTasks") List filterTaskSources,
            @JsonProperty("schemas") List schemas,
            @JsonProperty("executorSchema") Schema executorSchema,
            @JsonProperty("executorTask") TaskSource executorTaskSource) {
        this.inputPluginType = inputPluginType;
        this.outputPluginType = outputPluginType;
        this.filterPluginTypes = filterPluginTypes;
        this.inputTaskSource = inputTaskSource;
        this.outputTaskSource = outputTaskSource;
        this.filterTaskSources = filterTaskSources;
        this.schemas = schemas;
        this.executorSchema = executorSchema;
        this.executorTaskSource = executorTaskSource;
    }

    @JsonProperty("inputType")
    public PluginType getInputPluginType() {
        return inputPluginType;
    }

    @JsonProperty("outputType")
    public PluginType getOutputPluginType() {
        return outputPluginType;
    }

    @JsonProperty("filterTypes")
    public List getFilterPluginTypes() {
        return filterPluginTypes;
    }

    @JsonProperty("inputTask")
    public TaskSource getInputTaskSource() {
        return inputTaskSource;
    }

    @JsonProperty("outputTask")
    public TaskSource getOutputTaskSource() {
        return outputTaskSource;
    }

    @JsonProperty("filterTasks")
    public List getFilterTaskSources() {
        return filterTaskSources;
    }

    @JsonProperty("schemas")
    public List getFilterSchemas() {
        return schemas;
    }

    @JsonProperty("executorSchema")
    public Schema getExecutorSchema() {
        return executorSchema;
    }

    @JsonIgnore
    public Schema getInputSchema() {
        return ExecutorsInternal.getInputSchema(schemas);
    }

    @JsonIgnore
    public Schema getOutputSchema() {
        return ExecutorsInternal.getOutputSchema(schemas);
    }

    @JsonIgnore
    public void setExecutorTaskSource(TaskSource executorTaskSource) {
        this.executorTaskSource = executorTaskSource;
    }

    @JsonProperty("executorTask")
    public TaskSource getExecutorTaskSource() {
        return executorTaskSource;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy