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 ; }
Search using operational attribute specified in the parameter .