Packageorg.spicefactory.parsley.inject.tag
Classpublic class InjectPropertyDecorator
InheritanceInjectPropertyDecorator Inheritance Object
Implements ObjectDefinitionDecorator

Represents a Metadata, MXML or XML tag that can be used on properties for which dependency injection should be performed.



Public Properties
 PropertyDefined By
  id : String
The id of the dependency to inject.
InjectPropertyDecorator
  property : String
The name of the property.
InjectPropertyDecorator
  required : Boolean = true
Indicates whether the dependency is required or optional.
InjectPropertyDecorator
  type : Class
The type to inject, only applicable for Array properties.
InjectPropertyDecorator
Public Methods
 MethodDefined By
  
Method to be invoked by the container for each configuration tag it encounters for an object that was added to the container.
InjectPropertyDecorator
Property Detail
idproperty
public var id:String

The id of the dependency to inject. If this property is null, dependency injection by type will be performed.

propertyproperty 
public var property:String

The name of the property.

requiredproperty 
public var required:Boolean = true

Indicates whether the dependency is required or optional.

typeproperty 
public var type:Class

The type to inject, only applicable for Array properties. In this case all objects with a matching type will be included.

Method Detail
decorate()method
public function decorate(builder:ObjectDefinitionBuilder):void

Method to be invoked by the container for each configuration tag it encounters for an object that was added to the container. It doesn't matter whether it is a builtin configuration tag or a custom extension tag, or whether it is a metadata tag, an MXML or XML tag. As long as the tag is mapped to a class that implements this interface the container will invoke it for each tag on each object.

The builder parameter getting passed to the decorator can be used to customize the ObjectDefinition that is currently getting processed. In most custom tag implementations you will peform tasks like specifying constructor arguments, property values, message receivers, custom lifecycle processors or instantiators.

A decorator is also allowed to register additional definitions through using builder.newBuilder. Those additional definitions might describe collaborators that the processed definition will need to operate for example. If you want to register collaborators that are globally accessible (or within a certain scope) you may consider adding them to the ScopeExtensionRegistry in the GlobalFactoryRegistry instead.

Parameters

builder:ObjectDefinitionBuilder — the builder that can be used to modify the target definition