Class: Seasar::Container::Assembler::AutoPropertyAssembler

Inherits:
ManualPropertyAssembler show all
Defined in:
lib/seasar/container/assembler/auto-property-assembler.rb

Overview

自動インジェクションでプロパティを設定するアセンブラです。

Instance Method Summary collapse

Methods inherited from AbstractAssembler

#get_argument

Constructor Details

#initialize(component_def) ⇒ AutoPropertyAssembler

AutoPropertyAssemblerを構築します。

@param Seasar::Container::ComponentDef component_def
  • args

    1. Seasar::Container::ComponentDef component_def



29
30
31
# File 'lib/seasar/container/assembler/auto-property-assembler.rb', line 29

def initialize(component_def)
  super
end

Instance Method Details

#assemble(component) ⇒ Object

自動プロパティインジェクションを実施します。

@param instance component
  • args

    1. Object component

  • return

    • none



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/seasar/container/assembler/auto-property-assembler.rb', line 40

def assemble(component)
  super
  bean_desc  = Seasar::Beans::BeanDescFactory.get_bean_desc(component)
  bean_desc.typehint_property_descs.each {|property_name, prop_desc|
    if @component_def.has_property_def(prop_desc.property_name)
      next
    end
    value = self.get_argument(prop_desc.typehint, prop_desc.array_acceptable)
    if not value.nil?
      prop_desc.set_value(component, value)
    end
  }
end