code: private void _iterateFuzzyConverters (@Nonnull final Class <?> aSrcClass,
                                          @Nonnull final Class <?> aDstClass,
                                          @Nonnull final ITypeConverterCallback aCallback)
    {
      // For all possible source classes
      for (final WeakReference <Class <?>> aCurWRSrcClass : ClassHierarchyCache.getClassHierarchyIterator (aSrcClass))
      {
        final Class <?> aCurSrcClass = aCurWRSrcClass.get ();
        if (aCurSrcClass != null)
        {
          // Do we have a source converter?
          final Map <Class <?>, ITypeConverter <?, ?>> aConverterMap = m_aConverter.get (aCurSrcClass);
          if (aConverterMap != null)
          {
            // Check explicit destination classes
            final ITypeConverter <?, ?> aConverter = aConverterMap.get (aDstClass);
            if (aConverter != null)
            {
              // We found a match -> invoke the callback!
              if (aCallback.call (aCurSrcClass, aDstClass, aConverter).isBreak ())
                break;
            }
          }
        }
      }
    }
docs: Iterate all possible fuzzy converters from source class to destination
  class.
  
  @param aSrcClass
  Source class.
  @param aDstClass
  Destination class.
  @param aCallback
  The callback to be invoked once a converter was found. Must return
  either {@link EContinue#CONTINUE} to continue iteration or
  {@link EContinue#BREAK} to break iteration at the current position.