# AutowirePodFactory class abstract interface

Extends PodFactory with automatic dependency injection capabilities.

This interface provides methods for automatic wiring of dependencies, pod configuration, and lifecycle management. It's used by Jetleaf to perform dependency injection without manual configuration.

## Usage Example:

    class ServiceA {
      void operate() => print('ServiceA operating');
    }

    class ServiceB {
      final ServiceA serviceA;

      ServiceB(this.serviceA); // Autowired dependency

      void execute() => serviceA.operate();
    }

    final factory = getAutowirePodFactory();
    await factory.createPod(ServiceA(), Class<ServiceA>());
    await factory.autowirePod(ServiceB(serviceA), Class<ServiceB>());

Implemented types
  - PodFactory

## 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

applyPodPropertyValues(Object existingPod, String podName) → Future<void>
  Applies property values to a pod instance based on its configuration.
autowire(Class podClass, int autowireMode, bool checkDependency) → Future<Object>
  Creates and autowires a new pod instance from a class.
autowirePod(Object existingPod, Class type, {int? autowireMode, bool? checkDependency}) → Future<void>
  Performs autowiring on an existing pod instance.
configurePod(Object existingPod, String podName) → Future<Object>
  Configures a pod instance with factory-specific settings.
containsPod(String podName) → Future<bool>
  Checks if a pod with the given name is registered in the factory.
  inherited
containsType(Class type, [bool allowPodProviderInit = false]) → Future<bool>
  Checks if the factory contains a pod of the specified type.
  inherited
createPod<T>(T instance, Class type) → Future<T>
  Creates and registers a pod from an existing instance.
destroyExistingPod(Object existingPod, Class type, String podName) → Future<void>
  Destroys an existing pod instance by invoking its destruction methods.
destroyPod(String podName, Object podInstance) → Future<void>
  Destroys a pod instance by name and instance.
get<T>(Class<T> type, [List<ArgumentValue>? args]) → Future<T>
  Retrieves a pod instance by its type with optional arguments.
  inherited
getAliases(String podName) → List<String>
  Retrieves all alias names for the specified pod.
  inherited
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
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
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
initializePod(Object existingPod, Class type, String podName) → Future<void>
  Initializes a pod instance by invoking its lifecycle methods.
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
resolveDependency(DependencyDescriptor descriptor, [Set<String>? autowiredPods]) → Future<Object?>
  Resolves a dependency based on the provided descriptor.
  inherited
toString() → String
  A string representation of this object.
  inherited

## Operators

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