class Embulk::FormatterPlugin::JavaAdapter

def initialize(ruby_class)

def initialize(ruby_class)
  @ruby_class = ruby_class
end

def open(java_task_source, java_schema, java_file_output)

def open(java_task_source, java_schema, java_file_output)
  task_source = DataSource.from_java(java_task_source)
  schema = Schema.from_java(java_schema)
  file_output = FileOutput.new(java_file_output)
  ruby_object = @ruby_class.new(task_source, schema, file_output)
  return OutputAdapter.new(ruby_object, schema, file_output)
end

def transaction(java_config, java_schema, java_control)

def transaction(java_config, java_schema, java_control)
  config = DataSource.from_java(java_config)
  schema = Schema.from_java(java_schema)
  @ruby_class.transaction(config, schema) do |task_source_hash|
    java_task_source = DataSource.from_ruby_hash(task_source_hash).to_java
    java_control.run(java_task_source)
  end
  nil
end