docs: @Nullable
    public IHasUIState getState (@Nullable final ObjectType aOT, @Nullable final String sStateID)
    {
      if (aOT == null)
        return null;
      if (StringHelper.hasNoText (sStateID))
        return null;
  
      return m_aRWLock.readLocked ( () -> {
        IHasUIState ret = null;
  
        // Get mapping for requested ObjectType
        final Map <String, IHasUIState> aMap = m_aMap.get (aOT);
        if (aMap != null)
        {
          // Lookup control ID for this object type
          ret = aMap.get (sStateID);
          if (ret == null)
          {
            // Try regular expressions (required for auto suggests in ebiz)
            for (final Map.Entry <String, IHasUIState> aEntry : aMap.entrySet ())
              if (RegExHelper.stringMatchesPattern (aEntry.getKey (), sStateID))
              {
                ret = aEntry.getValue ();
                break;
              }
          }
        }
        return ret;
      });
    }