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(a)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));
+ }
+
//
/**