Module aermicioi.aedi.configurer.annotation.component_scan

Provides annotation based configuration and registration for components.

Functions

NameDescription
componentScan(storage, locator, id) Register an object into storage using annotations provided in it.
componentScan(storage, locator) Register an object into storage by it's type FQN using annotations provided in it.
componentScan(storage, locator) Register an object into storage by I's interface FQN that it implements using annotations provided in it.
componentScan(storage, locator) Register a set of objects by it's type, or implemented interface into a storage.
componentScan(storage, locator) Scan a module and register all public objects that are annotated with @component annotation.
componentScan(storage, locator) Scan a set of modules and register all public objects that are annotated with @component annotation.
componentScan(storageLocator, locator, id) Register an object into a storage contained in storageLocator and identified by @container annotation using annotations provided in it.
componentScan(storageLocator, locator) Register an object into a storage contained in storageLocator and identified by @container annotation using annotations provided in it.
componentScan(storageLocator, locator) Register module's objects into a storage contained in storageLocator and identified by @container annotation using annotations provided in it.
componentScanImpl(locator)

Structs

NameDescription
AllocatorConfiguratorPolicy Set allocator used by factory to instantiate component T.
AutowiredConstructorMethodConfiguratorPolicy Method policy that scans constructors for @autowired annotation to use them to construct component with dependencies identified by their type.
AutowiredFieldConfiguratorPolicy Field configurator policy that will try to inject a dependency that matches fields type for fields that are annotated with @autowired annotation
AutowiredMethodConfiguratorPolicy Method configurator policy that will call method annotated with @autowire with arguments extracted from locator by their type.
CallbackDestructorConfigurerPolicy A policy that configures factory to use callback to destroy created components.
CallbackFactoryConfiguratorPolicy Set callback instance factory from @callbac annotation into GenericFactory!Z
CallbackFieldConfiguratorPolicy Field configurator policy that will set a field to value returned by a callback in @callback annotation
CallbackMethodConfiguratorPolicy Method configurator policy that will call callback from @callback annotated methods.
ChainedConfiguratorPolicy Chain a set of configurator policies.
ChainedContainerAdder ContainerAdder that chains a set of ContainerAdders on a symbol.
ComponentStoringPolicyImpl A default implementation of component storing policy that looks for @qualifier and @contained annotations to store component factory.
ConfiguredFieldTester A dummy structure that is providing a simple field for isFieldConfiguratorPolicy interface for testing purposes of configurator templates.
ConfiguredMethodTester A dummy structure that is providing a simple method for isMethodConfiguratorPolicy interface for testing purposes of configurator templates.
ConstructorMethodConfiguratorPolicy Method configurator policy that scans only constructors for @constructor annotation, for using them to instantiate component Z
FactoryMethodContainerAdder ContainerAdder that will scan a type for it's methods, and use them to create component factories out of their return type
FallbackFactoryPolicy A factory policy that applies in order a set of factory policies to create component factory.
FieldScanningConfiguratorPolicy Configurator policy that applies field configurator policies on all public methods of a component
GenericConfigurerConfiguratorPolicy A policy that uses annotations that implement isConfigurerPolicy interface to configure the component factory
GenericFactoryAnnotationPolicy A factory policy that uses annotations implementing factory policy interface on component to instantiate the component.
GenericFactoryPolicy Create a GenericFactory!T if T is annotated with @component annotation.
InnerTypeContainerAdder ContainerAdder that scans a type for inner static types, to transform and store into a storage.
MethodScanningConfiguratorPolicy Configurator policy that applies method configurator policies on all public methods of a component
ModuleContainerAdder ContainerAdder that will scan a module for it's members, to transform into component factories and add them into a storage
ObjectFactoryTransformer Transformer that wraps results of another transformer in WrappingFactory
SetterFieldConfiguratorPolicy Field configurator policy that will set a field annotated @setter annotation to value contained in it.
SetterMethodConfiguratorPolicy Method configurator policy that will call a method with resolved arguments from @setter annotation.
TypeContainerAdder Applies a transformer on passed symbol if it is a type.
TypeTransformer A transformer that creates out of a type a GenericFactory for passed type
ValueFactoryConfiguratorPolicy Set value factory that takes component from @value annotation and provides it as a new component.

Templates

NameDescription
componentScan Register an object into a storage contained in storageLocator and identified by @container annotation using annotations provided in it.
componentScan Register an object into a storage contained in storageLocator and identified by @container annotation using annotations provided in it.
componentScan Register module's objects into a storage contained in storageLocator and identified by @container annotation using annotations provided in it.
Scanner Template for defining scanning functions instantiated with particular container adder policy.

Manifest constants

NameTypeDescription
isComponentStoringPolicy Check if T implements component storing interface.
isConfiguratorPolicy Check if a type T is a configurator policy.
isContainerAdder Check if T implements ContainerAdder interface.
isFactoryPolicy Check if a type T is a factory policy.
isFieldConfiguratorPolicy Check if T is a field configurator policy that operates upon fields of a component.
isMethodConfiguratorPolicy Check if T is a field configurator policy that operates upon methods of a component.
isTransformer Check if a policy implements transformer interface.
identifierEq
isClass
isClass
isContained
isEqByFQDN
isNamedTemplate
isQualifier
isReturnTypeEq
isStruct
isStruct
isTemplateInstantiationOf
isTemplateInstantiationOf
isType
isValue
toValue

Aliases

NameTypeDescription
ConfiguratorPolicyImpl ChainedConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.FieldScanningConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.SetterFieldConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackFieldConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredFieldConfiguratorPolicy).FieldScanningConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.MethodScanningConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.ConstructorMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredConstructorMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.SetterMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredMethodConfiguratorPolicy).MethodScanningConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AllocatorConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackFactoryConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.ValueFactoryConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.GenericConfigurerConfiguratorPolicy) Implementation of configurator policy, with built in configurators
ContainerAdderImpl ChainedContainerAdder!(TypeContainerAdder!TransformerPolicy,InnerTypeContainerAdder!(TypeContainerAdder!TransformerPolicy),FactoryMethodContainerAdder!(),ModuleContainerAdderImpl!TransformerPolicy) Customizable implementation of container adder, with built in functionality
FactoryPolicyImpl FallbackFactoryPolicy!(aermicioi.aedi.configurer.annotation.component_scan.GenericFactoryPolicy,aermicioi.aedi.configurer.annotation.component_scan.GenericFactoryAnnotationPolicy) Implementation of factory policy, with built in factory creators
FieldScanningConfiguratorPolicyImpl FieldScanningConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.SetterFieldConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackFieldConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredFieldConfiguratorPolicy) Implementation of field scanning configurator policy, with built in field configurators.
MethodScanningConfiguratorPolicyImpl MethodScanningConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.ConstructorMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredConstructorMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.SetterMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredMethodConfiguratorPolicy) Implementation of method scanning configurator policy, with built in method configurators.
ModuleContainerAdderImpl ModuleContainerAdder!(ChainedContainerAdder!(TypeContainerAdder!TransformerPolicy,InnerTypeContainerAdder!(TypeContainerAdder!TransformerPolicy),FactoryMethodContainerAdder!())) Implementation of module container adder, featuring built in scanners
ObjectFactoryTransformerImpl ObjectFactoryTransformer!(aermicioi.aedi.configurer.annotation.component_scan.TypeTransformer!(aermicioi.aedi.configurer.annotation.component_scan.FallbackFactoryPolicy!(aermicioi.aedi.configurer.annotation.component_scan.GenericFactoryPolicy,aermicioi.aedi.configurer.annotation.component_scan.GenericFactoryAnnotationPolicy).FallbackFactoryPolicy,aermicioi.aedi.configurer.annotation.component_scan.ChainedConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.FieldScanningConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.SetterFieldConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackFieldConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredFieldConfiguratorPolicy).FieldScanningConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.MethodScanningConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.ConstructorMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredConstructorMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.SetterMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredMethodConfiguratorPolicy).MethodScanningConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AllocatorConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackFactoryConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.ValueFactoryConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.GenericConfigurerConfiguratorPolicy).ChainedConfiguratorPolicy).TypeTransformer) Implementation of object wrapping factory wrapping TypeTransformerImpl
TypeTransformerImpl TypeTransformer!(aermicioi.aedi.configurer.annotation.component_scan.FallbackFactoryPolicy!(aermicioi.aedi.configurer.annotation.component_scan.GenericFactoryPolicy,aermicioi.aedi.configurer.annotation.component_scan.GenericFactoryAnnotationPolicy).FallbackFactoryPolicy,aermicioi.aedi.configurer.annotation.component_scan.ChainedConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.FieldScanningConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.SetterFieldConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackFieldConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredFieldConfiguratorPolicy).FieldScanningConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.MethodScanningConfiguratorPolicy!(aermicioi.aedi.configurer.annotation.component_scan.ConstructorMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredConstructorMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.SetterMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackMethodConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AutowiredMethodConfiguratorPolicy).MethodScanningConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.AllocatorConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.CallbackFactoryConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.ValueFactoryConfiguratorPolicy,aermicioi.aedi.configurer.annotation.component_scan.GenericConfigurerConfiguratorPolicy).ChainedConfiguratorPolicy) Implementation of type to type factory transformer, with built in funcionality
allUDAs AliasSeq!(__traits(getAttributes,symbol))
getPossibleComponents staticMap!(partialPrefixed!(getMember,Symbol),Filter!(templateAnd!(partialSuffixed!(partialPrefixed!(isProtection,Symbol),"public"),chain!(isType,partialPrefixed!(getMember,Symbol)),chain!(templateOr!(isClass,isStruct),partialPrefixed!(getMember,Symbol))),__traits(allMembers,Symbol)))
getPublicAggregateMembers Filter!(templateAnd!(partialSuffixed!(partialPrefixed!(isProtection,Symbol),"public"),chain!(hasMembers,partialPrefixed!(getMember,Symbol))),__traits(allMembers,Symbol))
instantiatonToTemplate templateSpecs.Template
isContained isContained!(typeof(T))
isQualifier isQualifier!(typeof(T))
toValue T