Method: Seasar::Container::Assembler::AbstractAssembler#get_argument

Defined in:
lib/seasar/container/assembler/abstract-assembler.rb

#get_argument(component_key, is_array_acceptable = False) ⇒ Object

AutoConstructorAssemblerとAutoPropertyAssemblerでタイプヒントされたコンポーネントを取得する際に

  • args

    1. String|Symbol component_key

    2. Boolean is_array_acceptable

  • return

    • Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/seasar/container/assembler/abstract-assembler.rb', line 45

def get_argument(component_key, is_array_acceptable = False)
  value = nil
  begin
    value = @component_def.container.get_component(component_key)
  rescue Seasar::Container::Exception::TooManyRegistrationRuntimeException => e
    if is_array_acceptable
      child_component_defs = @component_def.container.get_component_def(component_key).component_defs
      value = []
      for child_component_def in child_component_defs
        value << child_component_def.component
      end
    else
      raise e
    end
  rescue Seasar::Container::Exception::ComponentNotFoundRuntimeException => e
    s2logger.debug(self.class.name) {"no component found for key #{component_key}"}
  end
  return value
end