code: @Nullable
      public Object getMockedValue (@Nullable final Object [] aProvidedParams)
      {
        IGetterDirectTrait [] aEffectiveParams = null;
        if (m_aParams != null && m_aParams.length > 0)
        {
          // Parameters are present - convert all to IConvertibleTrait
          final int nRequiredParams = m_aParams.length;
          final int nProvidedParams = ArrayHelper.getSize (aProvidedParams);
  
          aEffectiveParams = new IGetterDirectTrait [nRequiredParams];
          for (int i = 0; i < nRequiredParams; ++i)
          {
            if (i < nProvidedParams && aProvidedParams[i] != null)
            {
              // Param provided and not null -> use provided
              final Object aVal = aProvidedParams[i];
              aEffectiveParams[i] = () -> aVal;
            }
            else
            {
              // Not provided or null -> use default
              aEffectiveParams[i] = m_aParams[i].getDefaultValue ();
            }
          }
        }
        return m_aFct.apply (aEffectiveParams);
      }
docs: This method is responsible for invoking the provided
  factory/supplier/function with the provided parameters.
  
  @param aProvidedParams
  The parameter array. May be <code>null</code> or empty.
  @return The mocked value. May be <code>null</code> but that would be a
  relatively rare case.