docs: public SearchResult searchByOperationalAttribute(String dn, String filter, List<String> inEntityTypes, List<String> propNames, String oprAttribute) throws WIMException {
          String inEntityType = null;
          List<String> supportedProps = propNames;
          if (inEntityTypes != null && inEntityTypes.size() > 0) {
              inEntityType = inEntityTypes.get(0);
              supportedProps = iLdapConfigMgr.getSupportedProperties(inEntityType, propNames);
          }
  
          String[] attrIds = iLdapConfigMgr.getAttributeNames(inEntityTypes, supportedProps, false, false);
  
          attrIds = Arrays.copyOf(attrIds, attrIds.length + 1);
          attrIds[attrIds.length - 1] = oprAttribute;
  
          NamingEnumeration<SearchResult> neu = null;
          neu = search(dn, filter, SearchControls.OBJECT_SCOPE, attrIds, iCountLimit, iTimeLimit);
  
          if (neu != null) {
              try {
                  if (neu.hasMore()) {
                      return neu.next();
                  }
              } catch (NamingException e) {
                  String msg = Tr.formatMessage(tc, WIMMessageKey.NAMING_EXCEPTION, WIMMessageHelper.generateMsgParms(e.toString(true)));
                  throw new WIMSystemException(WIMMessageKey.NAMING_EXCEPTION, msg, e);
              }
          }
  
          return null;
      }