# getPod<T> method

1. @override

Future<T> getPod<T>(

1. String podName, [
2. List<ArgumentValue>? args,
3. Class<T>? type

])
override

Retrieves a pod instance by its name with optional arguments.

This method looks up a pod by its registered name and returns an instance of the specified type. Optional arguments can be provided for constructor injection or parameter resolution.

## Usage Example:

    // Assuming 'databaseService' pod is registered
    final database = await factory.getPod<DatabaseService>('databaseService');

    // With constructor arguments
    final service = await factory.getPod<MyService>('myService', [
      ArgumentValue('url', 'https://api.example.com'),
      ArgumentValue('timeout', 30),
    ]);

@param podName The name of the pod to retrieve @param args Optional list of argument values for pod construction @return A Future that completes with the pod instance of type T @throws PodNotFoundException if the pod name is not registered @throws PodCreationException if the pod cannot be instantiated

## Implementation

    @override
    Future<T> getPod<T>(String podName, [List<ArgumentValue>? args, Class<T>? type]) async {
      final f = getPodFactory();

      if (await f.containsLocalPod(podName)) {
        return await f.getPod<T>(podName, args, type);
      }

      if (_parent != null) {
        return await _parent!.getPod<T>(podName, args, type);
      }

      throw NoSuchPodDefinitionException.byNameWithMessage(podName, 'No pod $podName');
    }