Class: Embulk::OutputPlugin::JavaAdapter

Inherits:
Object
  • Object
show all
Includes:
Java::OutputPlugin
Defined in:
lib/embulk/output_plugin.rb

Defined Under Namespace

Classes: OutputAdapter

Instance Method Summary collapse

Constructor Details

#initialize(ruby_class) ⇒ JavaAdapter

Returns a new instance of JavaAdapter.



46
47
48
# File 'lib/embulk/output_plugin.rb', line 46

def initialize(ruby_class)
  @ruby_class = ruby_class
end

Instance Method Details

#open(java_task_source, java_schema, processor_index) ⇒ Object



64
65
66
67
68
69
# File 'lib/embulk/output_plugin.rb', line 64

def open(java_task_source, java_schema, processor_index)
  task_source = DataSource.from_java_object(java_task_source)
  schema = Schema.from_java_object(java_schema)
  ruby_object = @ruby_class.new(task_source, schema, processor_index)
  return OutputAdapter.new(ruby_object, schema)
end

#transaction(java_config, java_schema, processor_count, java_control) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/embulk/output_plugin.rb', line 50

def transaction(java_config, java_schema, processor_count, java_control)
  config = DataSource.from_java_object(java_config)
  schema = Schema.from_java_object(java_schema)
  next_config_hash = @ruby_class.transaction(config, schema, processor_count) do |task_source_hash|
    java_task_source = DataSource.from_ruby_hash(task_source_hash).java_object
    java_commit_reports = java_control.run(java_task_source)
    java_commit_reports.map {|java_commit_report|
      DataSource.from_java_object(java_commit_report)
    }
  end
  # TODO check return type of #transaction
  return DataSource.from_ruby_hash(next_config_hash).java_object
end