[exo-jcr-commits] exo-jcr SVN: r4792 - in core/trunk: exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/cache and 4 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Aug 23 05:29:51 EDT 2011


Author: tolusha
Date: 2011-08-23 05:29:51 -0400 (Tue, 23 Aug 2011)
New Revision: 4792

Added:
   core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/mock/SimpleMembershipListAccess.java
Modified:
   core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/MembershipHandler.java
   core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/cache/CacheableMembershipHandlerImpl.java
   core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/mock/DummyOrganizationService.java
   core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/hibernate/MembershipDAOImpl.java
   core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/jdbc/MembershipDAOImpl.java
   core/trunk/exo.core.component.organization.ldap/src/main/java/org/exoplatform/services/organization/ldap/MembershipDAOImpl.java
Log:
EXOJCR-1491: Add new method to MembershipHandler interface

Modified: core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/MembershipHandler.java
===================================================================
--- core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/MembershipHandler.java	2011-08-23 09:05:53 UTC (rev 4791)
+++ core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/MembershipHandler.java	2011-08-23 09:29:51 UTC (rev 4792)
@@ -18,6 +18,8 @@
  */
 package org.exoplatform.services.organization;
 
+import org.exoplatform.commons.utils.ListAccess;
+
 import java.util.Collection;
 
 /**
@@ -145,6 +147,17 @@
    public Collection findMembershipsByGroup(Group group) throws Exception;
 
    /**
+    * Use this method to find all the membership in a group. Note that an user
+    * can have more than one membership in a group. For example , user admin can
+    * have meberhsip 'member' and 'admin' in the group '/users'
+    * 
+    * @param group
+    * @return the list of the memberships
+    * @throws Exception
+    */
+   public ListAccess<Membership> findAllMembershipsByGroup(Group group) throws Exception;
+
+   /**
     * Use this method to register a membership event listener.
     * 
     * @param listener the listener instance.

Modified: core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/cache/CacheableMembershipHandlerImpl.java
===================================================================
--- core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/cache/CacheableMembershipHandlerImpl.java	2011-08-23 09:05:53 UTC (rev 4791)
+++ core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/cache/CacheableMembershipHandlerImpl.java	2011-08-23 09:29:51 UTC (rev 4792)
@@ -16,8 +16,7 @@
  */
 package org.exoplatform.services.organization.cache;
 
-import com.sun.org.apache.bcel.internal.generic.RETURN;
-
+import org.exoplatform.commons.utils.ListAccess;
 import org.exoplatform.services.cache.ExoCache;
 import org.exoplatform.services.organization.Group;
 import org.exoplatform.services.organization.Membership;
@@ -25,6 +24,7 @@
 import org.exoplatform.services.organization.MembershipHandler;
 import org.exoplatform.services.organization.MembershipType;
 import org.exoplatform.services.organization.User;
+
 import java.util.Collection;
 
 /**
@@ -136,6 +136,11 @@
       return memberships;
    }
 
+   public ListAccess<Membership> findAllMembershipsByGroup(Group group) throws Exception
+   {
+      return membershipHandler.findAllMembershipsByGroup(group);
+   }
+
    /**
     * {@inheritDoc}
     */

Modified: core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/mock/DummyOrganizationService.java
===================================================================
--- core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/mock/DummyOrganizationService.java	2011-08-23 09:05:53 UTC (rev 4791)
+++ core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/mock/DummyOrganizationService.java	2011-08-23 09:29:51 UTC (rev 4792)
@@ -109,6 +109,11 @@
          return null;
       }
 
+      public ListAccess<Membership> findAllMembershipsByGroup(Group group) throws Exception
+      {
+         return null;
+      }
+
       public Collection findMembershipsByUser(String userName) throws Exception
       {
          Collection memberships = new ArrayList();

Added: core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/mock/SimpleMembershipListAccess.java
===================================================================
--- core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/mock/SimpleMembershipListAccess.java	                        (rev 0)
+++ core/trunk/exo.core.component.organization.api/src/main/java/org/exoplatform/services/organization/impl/mock/SimpleMembershipListAccess.java	2011-08-23 09:29:51 UTC (rev 4792)
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2011 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.exoplatform.services.organization.impl.mock;
+
+import org.exoplatform.commons.utils.ListAccess;
+import org.exoplatform.services.organization.Membership;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+/**
+ * @author <a href="abazko at exoplatform.com">Anatoliy Bazko</a>
+ * @version $Id: SimpleJDBCMembershipListAccess.java 34360 2009-07-22 23:58:59Z tolusha $
+ */
+public class SimpleMembershipListAccess implements ListAccess<Membership>
+{
+
+   private final Collection<Membership> memberships;
+   
+   public SimpleMembershipListAccess(Collection<Membership> memberships)
+   {
+      this.memberships = memberships;
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public Membership[] load(int index, int length) throws Exception, IllegalArgumentException
+   {
+      if (index < 0)
+      {
+         throw new IllegalArgumentException("Illegal index: can't be a negative number");
+      }
+
+      if (length < 0)
+      {
+         throw new IllegalArgumentException("Illegal length: can't be a negative number");
+      }
+      
+      if (index + length > memberships.size())
+      {
+         throw new IllegalArgumentException("The sum of the index and the length cannot be greater than the list size");
+      }
+
+      Membership[] results = new Membership[length];
+      Iterator<Membership> iter = memberships.iterator();
+      
+      for (int p = 0, counter = 0; counter < length; p++)
+      {
+         Membership membership = iter.next();
+
+         if (p >= index)
+         {
+            results[counter++] = membership;
+         }
+      }
+
+      return results;
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public int getSize() throws Exception
+   {
+      return memberships.size();
+   }
+
+}

Modified: core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/hibernate/MembershipDAOImpl.java
===================================================================
--- core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/hibernate/MembershipDAOImpl.java	2011-08-23 09:05:53 UTC (rev 4791)
+++ core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/hibernate/MembershipDAOImpl.java	2011-08-23 09:29:51 UTC (rev 4792)
@@ -19,6 +19,7 @@
 package org.exoplatform.services.organization.hibernate;
 
 import org.exoplatform.commons.utils.IdentifierUtil;
+import org.exoplatform.commons.utils.ListAccess;
 import org.exoplatform.commons.utils.ListenerStack;
 import org.exoplatform.services.database.HibernateService;
 import org.exoplatform.services.organization.Group;
@@ -30,6 +31,7 @@
 import org.exoplatform.services.organization.OrganizationService;
 import org.exoplatform.services.organization.User;
 import org.exoplatform.services.organization.impl.MembershipImpl;
+import org.exoplatform.services.organization.impl.mock.SimpleMembershipListAccess;
 import org.hibernate.Session;
 
 import java.util.Collection;
@@ -298,6 +300,14 @@
    /**
     * {@inheritDoc}
     */
+   public ListAccess<Membership> findAllMembershipsByGroup(Group group) throws Exception
+   {
+      return new SimpleMembershipListAccess(findMembershipsByGroup(group));
+   }
+
+   /**
+    * {@inheritDoc}
+    */
    public Collection findMembershipsByGroupId(String groupId) throws Exception
    {
       Session session = service_.openSession();

Modified: core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/jdbc/MembershipDAOImpl.java
===================================================================
--- core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/jdbc/MembershipDAOImpl.java	2011-08-23 09:05:53 UTC (rev 4791)
+++ core/trunk/exo.core.component.organization.jdbc/src/main/java/org/exoplatform/services/organization/jdbc/MembershipDAOImpl.java	2011-08-23 09:29:51 UTC (rev 4792)
@@ -19,6 +19,7 @@
 package org.exoplatform.services.organization.jdbc;
 
 import org.exoplatform.commons.utils.IdentifierUtil;
+import org.exoplatform.commons.utils.ListAccess;
 import org.exoplatform.services.database.DBObjectMapper;
 import org.exoplatform.services.database.DBObjectQuery;
 import org.exoplatform.services.database.DBPageList;
@@ -34,6 +35,7 @@
 import org.exoplatform.services.organization.MembershipType;
 import org.exoplatform.services.organization.OrganizationService;
 import org.exoplatform.services.organization.User;
+import org.exoplatform.services.organization.impl.mock.SimpleMembershipListAccess;
 
 import java.sql.Connection;
 import java.util.ArrayList;
@@ -170,7 +172,6 @@
     */
    public Collection findMembershipsByGroup(Group group) throws Exception
    {
-
       if (group == null)
          return null;
       List<MembershipImpl> list = new ArrayList<MembershipImpl>();
@@ -183,6 +184,14 @@
    /**
     * {@inheritDoc}
     */
+   public ListAccess<Membership> findAllMembershipsByGroup(Group group) throws Exception
+   {
+      return new SimpleMembershipListAccess(findMembershipsByGroup(group));
+   }
+
+   /**
+    * {@inheritDoc}
+    */
    public Collection findMembershipsByUser(String userName) throws Exception
    {
       if (userName == null)

Modified: core/trunk/exo.core.component.organization.ldap/src/main/java/org/exoplatform/services/organization/ldap/MembershipDAOImpl.java
===================================================================
--- core/trunk/exo.core.component.organization.ldap/src/main/java/org/exoplatform/services/organization/ldap/MembershipDAOImpl.java	2011-08-23 09:05:53 UTC (rev 4791)
+++ core/trunk/exo.core.component.organization.ldap/src/main/java/org/exoplatform/services/organization/ldap/MembershipDAOImpl.java	2011-08-23 09:29:51 UTC (rev 4792)
@@ -18,6 +18,7 @@
  */
 package org.exoplatform.services.organization.ldap;
 
+import org.exoplatform.commons.utils.ListAccess;
 import org.exoplatform.services.ldap.LDAPService;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
@@ -30,6 +31,7 @@
 import org.exoplatform.services.organization.OrganizationService;
 import org.exoplatform.services.organization.User;
 import org.exoplatform.services.organization.impl.MembershipImpl;
+import org.exoplatform.services.organization.impl.mock.SimpleMembershipListAccess;
 import org.exoplatform.services.organization.ldap.CacheHandler.CacheType;
 
 import java.util.ArrayList;
@@ -668,6 +670,14 @@
       }
    }
 
+   /**
+    * {@inheritDoc}
+    */
+   public ListAccess<Membership> findAllMembershipsByGroup(Group group) throws Exception
+   {
+      return new SimpleMembershipListAccess(findMembershipsByGroup(group));
+   }
+
    //
 
    /**



More information about the exo-jcr-commits mailing list