Update of 
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/preferences
In directory james.mmbase.org:/tmp/cvs-serv9403/services/community/preferences

Modified Files:
        PreferenceHibernateService.java PreferenceService.java 
Log Message:
CMSC-944,Create overview screen for Community Preferences


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/preferences
See also: http://www.mmbase.org/jira/browse/CMSC-944


Index: PreferenceHibernateService.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/preferences/PreferenceHibernateService.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- PreferenceHibernateService.java     12 Apr 2008 14:26:34 -0000      1.4
+++ PreferenceHibernateService.java     10 Jun 2008 11:53:11 -0000      1.5
@@ -15,12 +15,18 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.lang.StringUtils;
 import org.hibernate.Criteria;
+import org.hibernate.HibernateException;
+import org.hibernate.criterion.MatchMode;
+import org.hibernate.criterion.Order;
 import org.hibernate.criterion.Restrictions;
 import org.springframework.beans.factory.annotation.Required;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.finalist.cmsc.services.HibernateService;
+import com.finalist.cmsc.services.community.domain.PreferenceVO;
+import com.finalist.cmsc.services.community.security.Authentication;
 import com.finalist.cmsc.services.community.security.AuthenticationService;
 
 /**
@@ -161,4 +167,141 @@
     public void setAuthenticationService(AuthenticationService 
authenticationService) {
         this.authenticationService = authenticationService;
     }
+    
+    @Transactional(readOnly = true)
+    public List<PreferenceVO> getPreferences(PreferenceVO preference,int 
offset,int pageSize,String orderBy,String direction){
+
+       List<PreferenceVO> preferences = new ArrayList<PreferenceVO>();
+       Criteria criteria = getSession().createCriteria(Preference.class);
+       if(preference != null) {
+
+          if(StringUtils.isNotBlank(preference.getUserId())) {
+             Criteria authentication = 
getSession().createCriteria(Authentication.class);
+             authentication.add(Restrictions.ilike("userId", 
"%"+preference.getUserId()+"%"));
+             List<Authentication>  authentications = authentication.list();
+             List<Long> authenticationIds = new ArrayList<Long>();
+             for(Authentication authe : authentications) {
+                authenticationIds.add(authe.getId());
+             }
+             if(authenticationIds.size() > 0) {
+                criteria.add(Restrictions.in("authenticationId", 
authenticationIds));
+             }
+
+          }
+          
+          if(StringUtils.isNotBlank(preference.getModule())) {
+             criteria.add(Restrictions.ilike("module", 
"%"+preference.getModule()+"%"));
+          }
+          if(StringUtils.isNotBlank(preference.getKey())) {
+             criteria.add(Restrictions.ilike("key", 
"%"+preference.getKey()+"%"));
+          }
+          if(StringUtils.isNotBlank(preference.getValue())) {
+             criteria.add(Restrictions.ilike("value", 
"%"+preference.getValue()+"%"));
+          }
+       }
+       criteria.setFirstResult(offset);
+       criteria.setMaxResults(pageSize);
+       if(StringUtils.isNotEmpty(orderBy)) {
+          if(StringUtils.isEmpty(direction) || 
direction.equalsIgnoreCase("down")) {
+             criteria.addOrder(Order.desc(orderBy));
+          }
+          else {
+             criteria.addOrder(Order.asc(orderBy)); 
+          }
+       }
+      
+       copyPropertiesToVO(preferences,criteria.list());
+       return preferences;
+    }
+    
+    @Transactional(readOnly = true)
+    public List<PreferenceVO> getPreferences(int offset,int pageSize,String 
orderBy,String direction){
+       return getPreferences(null,offset,pageSize,orderBy,direction);
+    }
+    
+    @Transactional
+   public void createPreference(PreferenceVO preference) {      
+      
createPreference(preference.getModule(),preference.getUserId(),preference.getKey(),preference.getValue());
+   }
+    
+    @Transactional
+   public void updatePreference(PreferenceVO preferenceVO) {
+      try {
+         Preference preference = 
(Preference)getSession().load(Preference.class, 
Long.parseLong(preferenceVO.getId()));
+         preference.setKey(preferenceVO.getKey());
+         preference.setValue(preferenceVO.getValue());
+         getSession().saveOrUpdate(preference);
+      } catch (HibernateException e) {       
+         e.printStackTrace();
+      }
+  }
+    
+    @Transactional
+   public void deletePreference(String number) {
+      Preference preference = (Preference)getSession().get(Preference.class, 
Long.parseLong(number));
+      getSession().delete(preference);
+  }
+    
+    @Transactional(readOnly = true)
+   public List<String> getAllUserIds() {
+      List<Authentication> authentications = 
authenticationService.findAuthentications();
+      List<String> userIds = new ArrayList<String>();
+      for(Authentication authentication : authentications) {
+         userIds.add(authentication.getUserId());
+      }
+      return userIds;
+   }
+    
+    @Transactional(readOnly = true)
+    public int getTotalCount(PreferenceVO preference) {
+       List<PreferenceVO> preferences = new ArrayList<PreferenceVO>();
+       Criteria criteria = getSession().createCriteria(Preference.class);
+       if(preference != null) {
+
+          if(StringUtils.isNotBlank(preference.getUserId())) {
+             Criteria authentication = 
getSession().createCriteria(Authentication.class);
+             authentication.add(Restrictions.ilike("userId", 
"%"+preference.getUserId()+"%"));
+             List<Authentication>  authentications = authentication.list();
+             List<Long> authenticationIds = new ArrayList<Long>();
+             for(Authentication authe : authentications) {
+                authenticationIds.add(authe.getId());
+             }
+             if(authenticationIds.size() > 0) {
+                criteria.add(Restrictions.in("authenticationId", 
authenticationIds));
+             }
+
+          }
+          
+          if(StringUtils.isNotBlank(preference.getModule())) {
+             criteria.add(Restrictions.ilike("module", 
"%"+preference.getModule()+"%"));
+          }
+          if(StringUtils.isNotBlank(preference.getKey())) {
+             criteria.add(Restrictions.ilike("key", 
"%"+preference.getKey()+"%"));
+          }
+          if(StringUtils.isNotBlank(preference.getValue())) {
+             criteria.add(Restrictions.ilike("value", 
"%"+preference.getValue()+"%"));
+          }
+       }
+       return criteria.list().size();
+    }
+   private void copyPropertiesToVO(List<PreferenceVO> dest,List<Preference> 
src) {
+      if(src == null || src.size() == 0) {
+         return;
+      }
+      for(Preference preference:src ) {
+         PreferenceVO preferenceVO = new PreferenceVO();
+         preferenceVO.setId(String.valueOf(preference.getId()));
+         preferenceVO.setKey(preference.getKey());
+         preferenceVO.setValue(preference.getValue());
+         preferenceVO.setModule(preference.getModule());
+         
preferenceVO.setUserId(getUserIdByAuthenticationId(preference.getAuthenticationId()));
+         
preferenceVO.setAuthenticationId(String.valueOf(preference.getAuthenticationId()));
+         dest.add(preferenceVO);
+      }
+   }
+   
+   private String getUserIdByAuthenticationId(Long authenticationId){
+      Authentication authentication = 
authenticationService.getAuthenticationById(authenticationId);
+      return authentication.getUserId();
+   }
 }


Index: PreferenceService.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/preferences/PreferenceService.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- PreferenceService.java      29 Jan 2008 16:38:11 -0000      1.3
+++ PreferenceService.java      10 Jun 2008 11:53:11 -0000      1.4
@@ -12,6 +12,8 @@
 import java.util.List;
 import java.util.Map;
 
+import com.finalist.cmsc.services.community.domain.PreferenceVO;
+
 
 /**
  * @author Remco Bos
@@ -56,5 +58,11 @@
     void createPreference(String module, String userId, String key, String 
value);
        void updatePreference(String module, String userId, String key, String 
oldValue, String newValue);
        void deletePreference(String module, String userId, String key, String 
value);
-    
+        public List<PreferenceVO> getPreferences(PreferenceVO preference,int 
offset,int pageSize,String orderBy,String direction);
+        public List<PreferenceVO> getPreferences(int offset,int 
pageSize,String orderBy,String direction);
+        public void createPreference(PreferenceVO preference) ;
+        public void updatePreference(PreferenceVO preferenceVO);
+        public void deletePreference(String number) ;
+        public List<String> getAllUserIds();
+    public int getTotalCount(PreferenceVO preference);
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to