package org.ovirt.engine.core.bll.adbroker; import java.util.List; import org.ovirt.engine.core.common.businessentities.ad_groups; import org.ovirt.engine.core.dal.dbbroker.DbFacade; public class LdapSearchGroupsByQueryCommand extends LdapWithConfiguredCredentialsCommandBase { protected LdapQueryData getLdapQueryData() { return ((LdapSearchByQueryParameters) getParameters()).getLdapQueryData(); } public LdapSearchGroupsByQueryCommand(LdapSearchByQueryParameters parameters) { super(parameters); } @Override protected void executeQuery(DirectorySearcher directorySearcher) { java.util.ArrayList<ad_groups> groupList = new java.util.ArrayList<ad_groups>(); List<GroupSearchResult> searchResults = (List<GroupSearchResult>)directorySearcher.FindAll(getLdapQueryData()); { for (GroupSearchResult searchResult : searchResults) { String distinguishedName = searchResult.getDistinguishedName(); List<String> memberOf = searchResult.getMemberOf(); if (distinguishedName != null) { String groupName = LdapBrokerUtils.generateGroupDisplayValue(searchResult.getDistinguishedName()); ad_groups group = new ad_groups(searchResult.getGuid(), groupName, getDomain(),distinguishedName,memberOf); initGroupFromDb(group); groupList.add(group); } } } setReturnValue(groupList); setSucceeded(true); } private void initGroupFromDb(ad_groups group) { ad_groups dbGroup = DbFacade.getInstance().getAdGroupDAO().get(group.getid()); } }