docs: @Nonnull
    public static TypeaheadEditSelection getSelectionForRequiredObject (@Nonnull final IWebPageExecutionContext aWPEC,
                                                                        @Nullable final String sEditFieldName,
                                                                        @Nullable final String sHiddenFieldName)
    {
      ValueEnforcer.notNull (aWPEC, "WPEC");
  
      String sEditValue = aWPEC.params ().getAsString (sEditFieldName);
      String sHiddenFieldValue = aWPEC.params ().getAsString (sHiddenFieldName);
      if (StringHelper.hasText (sHiddenFieldValue))
      {
        if (StringHelper.hasNoText (sEditValue))
        {
          // The content of the edit field was deleted after a valid item was once
          // selected
          sHiddenFieldValue = null;
        }
      }
      else
      {
        if (StringHelper.hasText (sEditValue))
        {
          // No ID but a text -> no object selected but only a string typed
          sEditValue = null;
        }
      }
  
      return new TypeaheadEditSelection (sEditValue, sHiddenFieldValue);
    }