docs: @Nonnull
    public static UAProfile getUAProfile (@Nonnull final HttpServletRequest aHttpRequest)
    {
      ValueEnforcer.notNull (aHttpRequest, "HttpRequest");
  
      UAProfile aUAProfile = (UAProfile) aHttpRequest.getAttribute (UAProfile.class.getName ());
      if (aUAProfile == null)
      {
        // Extract HTTP header from request
        aUAProfile = UAProfileDatabase.getParsedUAProfile (new IUAProfileHeaderProvider ()
        {
          @Nonnull
          @ReturnsMutableCopy
          public ICommonsList <String> getAllHeaderNames ()
          {
            return CollectionHelper.newList (aHttpRequest.getHeaderNames ());
          }
  
          @Nonnull
          @ReturnsMutableCopy
          public ICommonsList <String> getHeaders (final String sName)
          {
            return CollectionHelper.newList (aHttpRequest.getHeaders (sName));
          }
  
          public String getHeader (final String sHeader)
          {
            return aHttpRequest.getHeader (sHeader);
          }
        });
        ServletHelper.setRequestAttribute (aHttpRequest, UAProfile.class.getName (), aUAProfile);
      }
      return aUAProfile;
    }