|
ColdBox Platform Version 3.7.0 | ||||
FRAMES |
WEB-INF.cftags.componentcoldbox.system.ioc.Injector
public class Injector
A WireBox Injector: Builds the graphs of objects that make up your application.
Constructor Summary | |
---|---|
init([any binder='coldbox.system.ioc.config.DefaultBinder'], [any<struct> properties='[runtime expression]'], [any<Controller> coldbox=''])
Constructor |
Method Summary | |
---|---|
any |
autowire(any target, [any<Mapping> mapping], [any targetID=''], [any<Boolean> annotationCheck='false'])
I wire up target objects with dependencies either by mappings or a-la-carte autowires |
private any |
buildBinder(any binder, any properties)
Load a configuration binder object according to passed in type |
any |
buildInstance(any<Mapping> mapping, [any<struct> initArguments='[runtime expression]'])
Build an instance, this is called from registered scopes only as they provide locking and transactions |
any |
clearSingletons()
Clear the singleton cache |
void |
configure(any<Binder> binder, any<struct> properties)
Configure this injector for operation, called by the init() |
private void |
configureCacheBox(any<struct> config)
Configure a standalone version of cacheBox for persistence |
private void |
configureEventManager()
Configure a standalone version of a WireBox Event Manager |
private void |
configureLogBox(any configPath)
Configure a standalone version of logBox for logging |
any<boolean> |
containsInstance(any name)
Checks if this injector can locate a model instance or not |
private void |
doScopeRegistration()
Register this injector on a user specified scope |
any<Binder> |
getBinder()
Get the Injector's configuration binder object |
any<CacheFactory> |
getCacheBox()
Get the instance of CacheBox linked in this Injector |
any<Controller> |
getColdbox()
Get the instance of ColdBox linked in this Injector |
any |
getEventManager()
Get the injector's event manager |
any |
getInjectorID()
Get the unique ID of this injector |
any |
getInstance([any name], [any dsl], [any<struct> initArguments='[runtime expression]'], [any targetObject=''])
Locates, Creates, Injects and Configures an object model instance |
any<LogBox> |
getLogBox()
Get the instance of LogBox configured for this Injector |
any<BeanPopulator> |
getObjectPopulator()
Get an object populator useful for populating objects from JSON,XML, etc |
any<Injector> |
getParent()
Get a reference to the parent injector instance, else an empty simple string meaning nothing is set |
any |
getScope(any scope)
Get a registered scope in this injector by name |
any<struct> |
getScopeRegistration()
Get the structure of scope registration information |
any<ScopeStorage> |
getScopeStorage()
Get the scope storage utility |
any<struct> |
getScopes()
Get all the registered scopes structure in this injector |
any<Util> |
getUtil()
Return the core util object |
any |
getVersion()
Get the Injector's version string |
private void |
injectTarget(any target, any propertyName, any propertyObject, any scope, any argName)
Inject a model object with dependencies via setters or property injections |
any<boolean> |
isCacheBoxLinked()
Checks if CacheBox is linked |
any<boolean> |
isColdBoxLinked()
Checks if Coldbox application context is linked |
any |
locateInstance(any name)
Tries to locate a specific instance by scanning all scan locations and returning the instantiation path |
any<Injector> |
locateScopedSelf()
Return a self reference using the scoped registration, mostly used by providers or scope widening objects |
private void |
processAfterCompleteDI(any targetObject, any DICompleteMethods)
Process after DI completion routines |
private void |
processInjection(any targetObject, any DIData, any targetID)
Process property and setter injection |
private void |
processMixins(any targetObject, any mapping)
Process mixins on the selected target |
private void |
processProviderMethods(any targetObject, any mapping)
Process provider methods on the selected target |
private void |
registerListeners()
Register all the configured listeners in the configuration file |
any |
registerNewInstance(any name, any instancePath)
Register a new requested mapping object instance thread safely and returns the mapping configured for this instance |
private void |
registerScopes()
Register all internal and configured WireBox Scopes |
void |
removeFromScope()
Remove the Injector from scope registration if enabled, else does nothing |
void |
setParent(any<Injector> injector)
Link a parent Injector with this injector |
void |
shutdown()
Shutdown the injector gracefully by calling the shutdown events internally |
Methods inherited from class WEB-INF.cftags.component |
---|
|
Constructor Detail |
---|
public init([any binder='coldbox.system.ioc.config.DefaultBinder'], [any<struct> properties='[runtime expression]'], [any<Controller> coldbox=''])
binder
- The WireBox binder or data CFC instance or instantiation path to configure this injector withproperties
- A structure of binding properties to passthrough to the Binder Configuration CFCcoldbox
- A coldbox application context that this instance of WireBox can be linked to, if not using it, we just ignore it.Method Detail |
---|
public any autowire(any target, [any<Mapping> mapping], [any targetID=''], [any<Boolean> annotationCheck='false'])
target
- The target object to wire upmapping
- The object mapping with all the necessary wiring metadata. Usually passed by scopes and not a-la-carte autowirestargetID
- A unique identifier for this target to wire up. Usually a class path or file path should do. If none is passed we will get the id from the passed target via introspection but it will slow down the wiringannotationCheck
- This value determines if we check if the target contains an autowire annotation in the cfcomponent tag: autowire=true|false, it will only autowire if that metadata attribute is set to true. The default is false, which will autowire anything automatically.private any buildBinder(any binder, any properties)
binder
- The data CFC configuration instance, instantiation path or programmatic binder object to configure this injector withproperties
- A map of binding properties to passthrough to the Configuration CFCpublic any buildInstance(any<Mapping> mapping, [any<struct> initArguments='[runtime expression]'])
mapping
- The mapping to constructinitArguments
- The constructor structure of arguments to passthrough when initializing the instancepublic any clearSingletons()
public void configure(any<Binder> binder, any<struct> properties)
binder
- The configuration binder object or path to configure this Injector instance withproperties
- A structure of binding properties to passthrough to the Configuration CFCprivate void configureCacheBox(any<struct> config)
config
- The cacheBox configuration data structureprivate void configureEventManager()
private void configureLogBox(any configPath)
configPath
- The logBox configuration path to usepublic any<boolean> containsInstance(any name)
containsInstance
in interface
IInjector
name
- The object name or alias to search for if this container can locate it or has knowledge of itprivate void doScopeRegistration()
public any<Binder> getBinder()
public any<CacheFactory> getCacheBox()
public any<Controller> getColdbox()
public any getEventManager()
public any getInjectorID()
public any getInstance([any name], [any dsl], [any<struct> initArguments='[runtime expression]'], [any targetObject=''])
getInstance
in interface
IInjector
name
- The mapping name or CFC instance path to try to build updsl
- The dsl string to use to retrieve the instance model object, mutually exclusive with 'name'initArguments
- The constructor structure of arguments to passthrough when initializing the instancetargetObject
- The object requesting the dependency, usually only used by DSL lookupspublic any<LogBox> getLogBox()
public any<BeanPopulator> getObjectPopulator()
public any<Injector> getParent()
getParent
in interface
IInjector
public any getScope(any scope)
scope
- The name of the scopepublic any<struct> getScopeRegistration()
public any<ScopeStorage> getScopeStorage()
public any<struct> getScopes()
public any<Util> getUtil()
public any getVersion()
private void injectTarget(any target, any propertyName, any propertyObject, any scope, any argName)
target
- The target that will be injected with dependenciespropertyName
- The name of the property to injectpropertyObject
- The object to injectscope
- The scope to inject a property into, if any else empty means it is a setter callargName
- The name of the argument to send if setter injectionpublic any<boolean> isCacheBoxLinked()
public any<boolean> isColdBoxLinked()
public any locateInstance(any name)
name
- The model instance name to locatepublic any<Injector> locateScopedSelf()
private void processAfterCompleteDI(any targetObject, any DICompleteMethods)
targetObject
- The target object to do some goodness onDICompleteMethods
- The array of DI completion methods to callprivate void processInjection(any targetObject, any DIData, any targetID)
targetObject
- The target object to do some goodness onDIData
- The DI data to usetargetID
- The target ID to process injectionsprivate void processMixins(any targetObject, any mapping)
targetObject
- The target object to do some goodness onmapping
- The target mappingprivate void processProviderMethods(any targetObject, any mapping)
targetObject
- The target object to do some goodness onmapping
- The target mappingprivate void registerListeners()
public any registerNewInstance(any name, any instancePath)
name
- The name of the mapping to registerinstancePath
- The path of the mapping to registerprivate void registerScopes()
public void removeFromScope()
public void setParent(any<Injector> injector)
setParent
in interface
IInjector
injector
- A WireBox Injector to assign as a parent to this Injectorpublic void shutdown()
shutdown
in interface
IInjector
|
ColdBox Platform Version 3.7.0 | ||||
FRAMES |