class_docstr: Utility class to manage a set of ``ConfigItem`` and resolve the references between them.
  
  This class maintains a set of ``ConfigItem`` objects and their associated IDs.
  The IDs must be unique within this set. A string in ``ConfigItem``
  starting with ``@`` will be treated as a reference to other ``ConfigItem`` objects by ID.
  Since ``ConfigItem`` may have a nested dictionary or list structure,
  the reference string may also contain the separator ``::`` to refer to a substructure by
  key indexing for a dictionary or integer indexing for a list.
  
  In this class, resolving references is essentially substitution of the reference strings with the
  corresponding python objects. A typical workflow of resolving references is as follows:
  
      - Add multiple ``ConfigItem`` objects to the ``ReferenceResolver`` by ``add_item()``.
      - Call ``get_resolved_content()`` to automatically resolve the references. This is done (recursively) by:
          - Convert the items to objects, for those do not have references to other items.
              - If it is instantiable, instantiate it and cache the class instance in ``resolved_content``.
              - If it is an expression, evaluate it and save the value in ``resolved_content``.
          - Substitute the reference strings with the corresponding objects.
  
  Args:
      items: ``ConfigItem``s to resolve, this could be added later with ``add_item()``.
docstr: Get the ``ConfigItem`` by id.
  
  If ``resolve=True``, the returned item will be resolved, that is,
  all the reference strings are substituted by the corresponding ``ConfigItem`` objects.
  
  Args:
      id: id of the expected config item.
      resolve: whether to resolve the item if it is not resolved, default to False.
      kwargs: keyword arguments to pass to ``_resolve_one_item()``.
          Currently support ``instantiate`` and ``eval_expr``. Both are defaulting to True.
docstr_tok: ["Get","the","``","ConfigItem","``","by","id",".","If","``","resolve=True","``",",","the","returned","item","will","be","resolved",",","that","is",",","all","the","reference","strings","are","substituted","by","the","corresponding","``","ConfigItem","``","objects",".","Args",":","id",":","id","of","the","expected","config","item",".","resolve",":","whether","to","resolve","the","item","if","it","is","not","resolved",",","default","to","False",".","kwargs",":","keyword","arguments","to","pass","to","``","_resolve_one_item","(",")","``",".","Currently","support","``","instantiate","``","and","``","eval_expr","``",".","Both","are","defaulting","to","True","."]
code: def get_item(
      self, id: str, resolve: bool = False, **kwargs: Any
  ) -> ConfigItem | None:
      """
      Get the ``ConfigItem`` by id.
  
      If ``resolve=True``, the returned item will be resolved, that is,
      all the reference strings are substituted by the corresponding ``ConfigItem`` objects.
  
      Args:
          id: id of the expected config item.
          resolve: whether to resolve the item if it is not resolved, default to False.
          kwargs: keyword arguments to pass to ``_resolve_one_item()``.
              Currently support ``instantiate`` and ``eval_expr``. Both are defaulting to True.
      """
      id = self.normalize_id(id)
      if resolve and id not in self.resolved_content:
          self._resolve_one_item(id=id, **kwargs)
      return self.items.get(id)
  
imports: from __future__ import annotations
  import re
  import warnings
  from collections.abc import Sequence
  from typing import Any, Iterator
  from monai.bundle.config_item import ConfigComponent, ConfigExpression, ConfigItem
  from monai.bundle.utils import ID_REF_KEY, ID_SEP_KEY
  from monai.utils import allow_missing_reference, look_up_option
label_desc: Use image node_id 5 for calling the ReferenceResolver obj's underlying member method code with example usage: obj.get_item(id, resolve) and returns: self