A comprehensive pod factory interface with configuration capabilities.
This interface combines hierarchical functionality with configuration features such as scope management, lifecycle processors, and various factory behaviors. It's the main interface used by Jetleaf applications for configurable pod management.
Usage Example:
final factory = JetleafPodFactory();
factory.setParentFactory(parentFactory);
factory.registerScope('request', RequestScope());
factory.setAllowCircularReferences(true);
factory.addPodProcessor(MyCustomProcessor());
// Start the factory
await factory.refresh();
See also:
- HierarchicalPodFactory for parent-child hierarchy functionality
- ApplicationStartupAware for application lifecycle integration
- SingletonPodRegistry for singleton management
- Implemented types
- Implementers
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
addPodProcessor(
PodProcessor processor) → void - Registers a new pod-aware processor.
-
addSingletonCallback(
String name, Class type, Consumer< Object> callback) → void -
Add a callback to be executed when the singleton associated with
nameis initialized.inherited -
clearSingletonCache(
) → void -
Clears all cached singleton pods.
inherited
-
containsLocalPod(
String podName) → Future< bool> -
Checks if a pod with the given name is registered locally in this factory.
inherited
-
containsPod(
String podName) → Future< bool> -
Checks if a pod with the given name is registered in the factory.
inherited
-
containsSingleton(
String name) → bool -
Returns
trueif this registry contains a pod with the givenname.inherited -
containsType(
Class type, [bool allowPodProviderInit = false]) → Future< bool> -
Checks if the factory contains a pod of the specified type.
inherited
-
copyConfigurationFrom(
ConfigurablePodFactory otherFactory) → void - Copies configuration from another factory.
-
destroyPod(
String podName, Object podInstance) → Future< void> - Destroys a pod instance by name and instance.
-
destroyScopedPod(
String podName) → void - Destroys all pods in the specified scope.
-
destroySingletons(
) → void - Destroys all singleton pods in the factory.
-
get<
T> (Class< T> type, [List<ArgumentValue> ? args]) → Future<T> -
Retrieves a pod instance by its type with optional arguments.
inherited
-
getAlias(
String name) → String? -
Retrieves the primary name associated with the given
alias.inherited -
getAliases(
String podName) → List< String> -
Retrieves all alias names for the specified pod.
inherited
-
getAllowCircularReferences(
) → bool - Retrieves the current circular reference setting.
-
getAllowDefinitionOverriding(
) → bool - Retrieves the current definition overriding setting.
-
getAllowRawInjection(
) → bool - Retrieves the current raw injection despite wrapping setting.
-
getApplicationStartup(
) → ApplicationStartup -
Defines a contract for components that are aware of and can interact with
an ApplicationStartup strategy.
inherited
-
getConversionService(
) → ConversionService -
Retrieves the currently assigned
ConversionService. -
getMergedPodDefinition(
String podName) → RootPodDefinition - Retrieves the merged pod definition for the specified pod name.
-
getNamedObject(
String podName, [List< ArgumentValue> ? args]) → Future<Object> -
Retrieves a pod as a generic Object by its name with optional arguments.
inherited
-
getObject(
Class< Object> type, [List<ArgumentValue> ? args]) → Future<Object> -
Retrieves a pod as a generic Object by its type with optional arguments.
inherited
-
getPackageName(
) → String -
Represents an abstraction for identifying the package that an object,
resource, or service belongs to.
inherited
-
getParentFactory(
) → PodFactory? -
Retrieves the parent factory in the hierarchy, if any.
inherited
-
getPod<
T> (String podName, [List< ArgumentValue> ? args, Class<T> ? type]) → Future<T> -
Retrieves a pod instance by its name with optional arguments.
inherited
-
getPodClass(
String podName) → Future< Class> -
Retrieves the Class object for the specified pod name.
inherited
-
getPodExpressionResolver(
) → PodExpressionResolver? - Retrieves the current expression resolver.
-
getPodProcessorCount(
) → int - Gets the number of registered pod-aware processors.
-
getPodProcessors(
) → List< PodProcessor> - Retrieves all registered pod-aware processors.
-
getProvider<
T> (Class< T> type, {String? podName, bool allowEagerInit = false}) → Future<ObjectProvider< T> > -
Retrieves a provider for a pod, allowing for lazy or eager initialization.
inherited
-
getRegisteredScope(
String scopeName) → PodScope? - Retrieves a registered scope by name.
-
getRegisteredScopeNames(
) → List< String> - Retrieves all registered scope names.
-
getSingleton(
String name, {bool allowEarlyReference = true, ObjectFactory< Object> ? factory}) → Future<Object?> -
Retrieve the pod registered under
name.inherited -
getSingletonCount(
) → int -
Returns the total number of pods registered.
inherited
-
getSingletonNames(
) → List< String> -
Returns a list of all pod names currently registered.
inherited
-
isActuallyInCreation(
String podName) → bool - Checks if a pod with the given name is currently being created.
-
isAlias(
String name) → bool -
Checks whether the given
nameis registered as an alias.inherited -
isCachePodMetadata(
) → bool - Checks if pod metadata caching is enabled.
-
isPodProvider(
String podName, [RootPodDefinition? rpd]) → Future< bool> -
Checks if the specified pod name refers to a pod provider.
inherited
-
isPrototype(
String podName) → Future< bool> -
Checks if the specified pod is configured as a prototype.
inherited
-
isSingleton(
String podName) → Future< bool> -
Checks if the specified pod is configured as a singleton.
inherited
-
isTypeMatch(
String name, Class typeToMatch, [bool allowPodProviderInit = false]) → Future< bool> -
Checks if the pod with the specified name matches the given type.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
registerAlias(
String name, String alias) → void -
Registers an alias for an existing name in the registry.
inherited
-
registerScope(
String scopeName, PodScope scope) → void - Registers a new scope with the given name.
-
registerSingleton(
String name, Class type, {ObjectHolder< Object> ? object, ObjectFactory<Object> ? factory}) → Future<void> -
Register a new pod under the given
name.inherited -
removeAlias(
String alias) → void -
Removes an alias from the registry.
inherited
-
removeSingleton(
String name) → void -
Remove the pod associated with
name.inherited -
resolveDependency(
DependencyDescriptor descriptor, [Set< String> ? autowiredPods]) → Future<Object?> -
Resolves a dependency based on the provided descriptor.
inherited
-
setAllowCircularReferences(
bool value) → void - Allows or disallows circular references between pods.
-
setAllowDefinitionOverriding(
bool value) → void - Allows or disallows overriding of pod definitions.
-
setAllowRawInjection(
bool value) → void - Allows or disallows raw injection despite wrapping.
-
setApplicationStartup(
ApplicationStartup applicationStartup) → void -
Defines a contract for components that are aware of and can interact with
an ApplicationStartup strategy.
inherited
-
setCachePodMetadata(
bool cachePodMetadata) → void - Enables or disables caching of pod metadata for performance optimization.
-
setConversionService(
ConversionService conversionService) → void -
Sets an assigned
ConversionService. -
setParentFactory(
PodFactory? parentFactory) → void - Sets the parent factory for this hierarchical factory.
-
setPodExpressionResolver(
PodExpressionResolver? valueResolver) → void - Sets the expression resolver for resolving expressions in pod definitions.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited