# AbstractPodFactory constructor

AbstractPodFactory([

1. PodFactory? parent

])

Abstract base implementation of PodFactory that provides core functionality for pod creation, management, and lifecycle handling in the Jetleaf framework.

This class serves as the foundation for concrete pod factories, implementing the core algorithm for pod retrieval, scope management, dependency resolution, and lifecycle callbacks. It handles singleton caching, prototype creation, circular dependency detection, and PodProvider unwrapping.

Key Features:

- Hierarchical pod provider support with parent-child relationships
- Singleton and prototype scope management
- Custom scope registration and handling
- Pod post-processing with PodProcessor
- Expression resolution for dynamic value injection
- Lifecycle management with destruction callbacks
- Circular dependency detection and prevention

Usage Example:

    class MyPodFactory extends AbstractPodFactory {
      @override
      PodDefinition getDefinition(String name) {
        // Implementation to return pod definition by name
      }

      @override
      FutureOr<Object> doCreate(String name, RootPodDefinition definition, List<ArgumentValue>? args) {
        // Implementation to create pod instance
      }
    }

    final factory = MyPodFactory();
    final pod = await factory.getPod<MyService>('myService');

See also:

- PodFactory for the main interface
- ConfigurablePodFactory for configuration methods
- PodScope for scope implementations

## Implementation

    AbstractPodFactory([PodFactory? parent]) {
      _parentPodFactory = parent;

      // Register default scopes
      _scopes[ScopeType.SINGLETON.name.toLowerCase()] = SingletonScope();
      _scopes[ScopeType.PROTOTYPE.name.toLowerCase()] = PrototypeScope();
      _prototypesCurrentlyInCreation.set(<String>{});
      _applicationStartup = DefaultApplicationStartup();
      _expressionResolver = DefaultPodExpressionResolver();
      _conversionService = DefaultConversionService();
    }