class Embulk::ParserPlugin::JavaAdapter

Public Class Methods

new(ruby_class) click to toggle source
# File lib/embulk/parser_plugin.rb, line 36
def initialize(ruby_class)
  @ruby_class = ruby_class
end

Public Instance Methods

run(java_task_source, java_schema, java_file_input, java_output) click to toggle source
# File lib/embulk/parser_plugin.rb, line 50
def run(java_task_source, java_schema, java_file_input, java_output)
  task_source = DataSource.from_java(java_task_source)
  schema = Schema.from_java(java_schema)
  file_input = FileInput.new(java_file_input)
  page_builder = PageBuilder.new(schema, java_output)
  begin
    @ruby_class.new(task_source, schema, page_builder).run(file_input)
    nil
  ensure
    page_builder.close
    # FileInput is closed by FileInputRunner
  end
end
transaction(java_config, java_control) click to toggle source
# File lib/embulk/parser_plugin.rb, line 40
def transaction(java_config, java_control)
  config = DataSource.from_java(java_config)
  @ruby_class.transaction(config) do |task_source_hash,columns|
    java_task_source = DataSource.from_ruby_hash(task_source_hash).to_java
    java_schema = Schema.new(columns).to_java
    java_control.run(java_task_source, java_schema)
  end
  nil
end