# PodFactoryAware class abstract interface

🫘 Interface for components that need access to the PodFactory.

The PodFactoryAware interface is part of JetLeaf's Aware interface pattern, which provides a standardized way for framework-managed components to receive callback notifications about their runtime environment.

### When to Implement:

Implement this interface when your component needs to:

- Programmatically access other pods not available through constructor injection
- Perform dynamic lookups based on runtime conditions
- Access container metadata or advanced DI features
- Implement custom lifecycle logic that requires container interaction

### Framework Integration:

- Called automatically by the framework after pod instantiation
- Invoked before any `@PostConstruct` methods
- The provided PodFactory is fully configured and operational

### Example Usage:

    class DynamicServiceLocator implements PodFactoryAware {
      late PodFactory _podFactory;

      @override
      void setPodFactory(PodFactory podFactory) {
        _podFactory = podFactory;
      }

      T getService<T>(String serviceName) {
        return _podFactory.getPod<T>(serviceName);
      }

      bool hasService(String serviceName) {
        return _podFactory.containsPod(serviceName);
      }
    }

### Best Practices:

- Store the PodFactory reference in a late final field
- Avoid expensive operations in the setter method
- Prefer constructor injection over PodFactoryAware when possible
- Use for advanced scenarios where static dependency resolution is insufficient

See also:

- PodFactory for the dependency injection container interface
- ApplicationContextAware for application context access
- PodNameAware for pod name awareness

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
setPodFactory(PodFactory podFactory) → void
  Sets the PodFactory that created and manages this component.
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited