--- /dev/null
+package com.liferay.contacts.util;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.liferay.portal.kernel.bean.PortletBeanLocatorUtil;
+import com.liferay.portal.kernel.dao.orm.DynamicQuery;
+import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil;
+import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil;
+import com.liferay.portal.kernel.exception.SystemException;
+import com.liferay.portal.kernel.log.Log;
+import com.liferay.portal.kernel.log.LogFactoryUtil;
+import com.liferay.portal.model.Group;
+import com.liferay.portal.model.Organization;
+import com.liferay.portal.service.GroupLocalServiceUtil;
+import com.pentila.entSavoie.userManagement.service.ClpSerializer;
+
+public class GroupFilter {
+
+ private static Log logger = LogFactoryUtil.getLog(GroupFilter.class);
+
+ /**
+ * Returns a list of groups from a list of organizations
+ */
+ @SuppressWarnings("unchecked")
+ public static List<Group> getGroupsFromOrganizations(List<Organization> orgsToSearchFor) throws SystemException{
+
+ List<Group> groupToReturn = new ArrayList<Group>();
+ if (orgsToSearchFor != null && orgsToSearchFor.size() > 0) {
+ ClassLoader classLoader = (ClassLoader)PortletBeanLocatorUtil.locate(ClpSerializer.getServletContextName(),"portletClassLoader");
+ DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(Group.class,classLoader);
+
+ Long[] orgIdTab = new Long[orgsToSearchFor.size()];
+ int idx = 0;
+ for (Organization org : orgsToSearchFor) {
+ orgIdTab[idx++] = org.getOrganizationId();
+ }
+ dynamicQuery.add(PropertyFactoryUtil.forName("classPK").in(orgIdTab));
+
+ groupToReturn.addAll(GroupLocalServiceUtil.dynamicQuery(dynamicQuery));
+ }
+
+ return groupToReturn;
+ }
+
+ /**
+ * Builds a group/org mapping from both a list of groups and a list of organizations
+ */
+ public static Map<Group,Organization> fillMatchingGroupOrgMaps(List<Group> groupsToMapWithOrg, List<Organization> orgsToMapwithGroup){
+
+ Map<Group,Organization> mapGroupOrg = new HashMap<Group,Organization>();
+ for (Organization aUserOrg : orgsToMapwithGroup) {
+ for (Group aGroup : groupsToMapWithOrg) {
+ if (aUserOrg.getOrganizationId() == aGroup.getClassPK()) {
+ mapGroupOrg.put(aGroup, aUserOrg);
+ break;
+ }
+ }
+ }
+ return mapGroupOrg;
+ }
+
+
+ /**
+ * Returns a list of groups from a list of groupIds
+ */
+ @SuppressWarnings("unchecked")
+ public static List<Group> getGroupsFromGroupIds(List<Long> groupIdList) throws SystemException{
+
+ List<Group> groupToReturn = new ArrayList<Group>();
+ if (groupIdList != null && groupIdList.size() > 0) {
+ ClassLoader classLoader = (ClassLoader)PortletBeanLocatorUtil.locate(ClpSerializer.getServletContextName(),"portletClassLoader");
+ DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(Group.class,classLoader);
+
+ Long[] groupIdTab = new Long[groupIdList.size()];
+ int idx = 0;
+ for (Long groupId : groupIdList) {
+ groupIdTab[idx++] = groupId;
+ }
+ dynamicQuery.add(PropertyFactoryUtil.forName("groupId").in(groupIdTab));
+
+ groupToReturn.addAll(GroupLocalServiceUtil.dynamicQuery(dynamicQuery));
+ }
+
+ return groupToReturn;
+ }
+
+}