Class: Seasar::Container::Assembler::AbstractAssembler
- Inherits:
-
Object
- Object
- Seasar::Container::Assembler::AbstractAssembler
- Defined in:
- lib/seasar/container/assembler/abstract-assembler.rb
Overview
コンポーネントを構築する(アセンブルする)抽象クラスです。
Direct Known Subclasses
Instance Method Summary collapse
-
#get_argument(component_key, is_array_acceptable = False) ⇒ Object
AutoConstructorAssemblerとAutoPropertyAssemblerでタイプヒントされたコンポーネントを取得する際に 呼び出される。 @param string component_key @param boolean is_array_acceptable @return mixed.
-
#initialize(component_def) ⇒ AbstractAssembler
constructor
AbstractAssemblerを構築します。 - args 1.
Constructor Details
#initialize(component_def) ⇒ AbstractAssembler
AbstractAssemblerを構築します。
-
args
-
Seasar::Container::ComponentDefSymbol component_def
-
29 30 31 |
# File 'lib/seasar/container/assembler/abstract-assembler.rb', line 29 def initialize(component_def) @component_def = component_def end |
Instance Method Details
#get_argument(component_key, is_array_acceptable = False) ⇒ Object
AutoConstructorAssemblerとAutoPropertyAssemblerでタイプヒントされたコンポーネントを取得する際に
呼び出される。
@param string component_key
@param boolean is_array_acceptable
@return mixed
-
args
-
String|Symbol component_key
-
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 |