/**
         * Get the LDAP name or names for a given connector attribute used in a
         * search filter.
         *
         * @param attr The connector attribute used in a search filter.
         *
         * @return The name or names of the corresponding LDAP attribute.
         *         Returns null if the attribute cannot be specified in an LDAP
         *         filter.
         */

        protected virtual String[] GetLdapNamesForAttribute(ConnectorAttribute attr)
        {
            // Special processing for certain connector attributes.
            String[] attrNames = null;
            if (attr is Uid)
            {
                /*
                 * attrNames = new String[] {
                 *   configCache.getConfiguration().getUuidAttribute() };
                 */
                attrNames = new String[] { "objectGUID" };
            }
            else if (attr is Name)
            {
                /*
                 * attrNames = configCache.getNamingAttributes();
                 */
                attrNames = new String [] { "distinguishedName" };
            }
            else if (attr.Is(OperationalAttributes.PASSWORD_NAME))
            {
                /*
                 * attrNames = new String[] {
                 *   configCache.getConfiguration().getPasswordAttribute()
                 * };
                 */
                attrNames = new String[] { "userPassword" };
            }
            else if (ConnectorAttributeUtil.IsSpecial(attr))
            {
                return(null);
            }
            else
            {
                attrNames = new String[] { attr.Name };
            }

            return(attrNames);
        }