Update of
/var/cvs/contributions/CMSContainer_Modules/community/src/java/com/finalist/cmsc/services/community/preferences
In directory
james.mmbase.org:/tmp/cvs-serv6882/java/com/finalist/cmsc/services/community/preferences
Modified Files:
PreferenceHibernateService.java
Log Message:
CMSC-1093(Add sort on the jsp.)
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-1093
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.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- PreferenceHibernateService.java 23 Sep 2008 07:12:57 -0000 1.13
+++ PreferenceHibernateService.java 21 Oct 2008 07:49:46 -0000 1.14
@@ -17,7 +17,7 @@
import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
-import org.hibernate.criterion.Order;
+import org.hibernate.Query;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.transaction.annotation.Transactional;
@@ -37,16 +37,16 @@
/** [EMAIL PROTECTED] */
@Transactional(readOnly = true)
@SuppressWarnings("unchecked")
- public Map < Long , Map < String , String >> getPreferencesByModule(String
module) {
+ public Map<Long, Map<String, String>> getPreferencesByModule(String module)
{
Criteria criteria = getSession().createCriteria(Preference.class);
criteria.add(Restrictions.eq("module", module));
List preferenceList = criteria.list();
- Map < Long , Map < String , String >> userPreferenceMap = new HashMap <
Long , Map < String , String >>();
+ Map<Long, Map<String, String>> userPreferenceMap = new HashMap<Long,
Map<String, String>>();
for (Iterator iter = preferenceList.iterator(); iter.hasNext();) {
Preference p = (Preference) iter.next();
- Map < String , String > preferenceMap =
userPreferenceMap.get(p.getAuthenticationId());
+ Map<String, String> preferenceMap =
userPreferenceMap.get(p.getAuthenticationId());
if (preferenceMap == null) {
- preferenceMap = new HashMap < String , String >();
+ preferenceMap = new HashMap<String, String>();
userPreferenceMap.put(p.getAuthenticationId(), preferenceMap);
}
preferenceMap.put(p.getKey(), p.getValue());
@@ -57,17 +57,17 @@
/** [EMAIL PROTECTED] */
@Transactional(readOnly = true)
@SuppressWarnings("unchecked")
- public Map < String , Map < String , String >>
getPreferencesByUserId(String userId) {
+ public Map<String, Map<String, String>> getPreferencesByUserId(String
userId) {
Long authenticationId =
authenticationService.getAuthenticationIdForUserId(userId);
Criteria criteria = getSession().createCriteria(Preference.class);
criteria.add(Restrictions.eq("authenticationId", authenticationId));
List preferenceList = criteria.list();
- Map < String , Map < String , String >> modulePreferenceMap = new
HashMap < String , Map < String , String >>();
+ Map<String, Map<String, String>> modulePreferenceMap = new
HashMap<String, Map<String, String>>();
for (Iterator iter = preferenceList.iterator(); iter.hasNext();) {
Preference p = (Preference) iter.next();
- Map < String , String > preferenceMap =
modulePreferenceMap.get(p.getModule());
+ Map<String, String> preferenceMap =
modulePreferenceMap.get(p.getModule());
if (preferenceMap == null) {
- preferenceMap = new HashMap < String , String >();
+ preferenceMap = new HashMap<String, String>();
modulePreferenceMap.put(p.getModule(), preferenceMap);
}
preferenceMap.put(p.getKey(), p.getValue());
@@ -77,12 +77,12 @@
/** [EMAIL PROTECTED] */
@Transactional(readOnly = true)
- public List < Preference > getListPreferencesByUserId(String userId) {
+ public List<Preference> getListPreferencesByUserId(String userId) {
Long authenticationId =
authenticationService.getAuthenticationIdForUserId(userId);
Criteria criteria = getSession().createCriteria(Preference.class);
criteria.add(Restrictions.eq("authenticationId", authenticationId));
List List = criteria.list();
- List < Preference > preferenceList = new ArrayList < Preference >();
+ List<Preference> preferenceList = new ArrayList<Preference>();
for (Iterator iter = List.iterator(); iter.hasNext();) {
Preference p = new Preference();
p = (Preference) iter.next();
@@ -93,7 +93,7 @@
/** [EMAIL PROTECTED] */
@Transactional(readOnly = true)
- public Map < String , String > getPreferences(String module, String userId)
{
+ public Map<String, String> getPreferences(String module, String userId) {
Long authenticationId =
authenticationService.getAuthenticationIdForUserId(userId);
Criteria criteria = getSession().createCriteria(Preference.class);
criteria.add(Restrictions.eq("module", module));
@@ -104,14 +104,14 @@
/** [EMAIL PROTECTED] */
@SuppressWarnings("unchecked")
@Transactional(readOnly = true)
- public List < String > getPreferenceValues(String module, String userId,
String key) {
+ public List<String> getPreferenceValues(String module, String userId,
String key) {
Long authenticationId =
authenticationService.getAuthenticationIdForUserId(userId);
Criteria criteria = getSession().createCriteria(Preference.class);
criteria.add(Restrictions.eq("module", module));
criteria.add(Restrictions.eq("authenticationId", authenticationId));
criteria.add(Restrictions.eq("key", key));
- List < String > result = new ArrayList < String >();
+ List<String> result = new ArrayList<String>();
for (Iterator iter = criteria.list().iterator(); iter.hasNext();) {
Preference p = (Preference) iter.next();
result.add(p.getValue());
@@ -120,9 +120,9 @@
}
@SuppressWarnings("unchecked")
- private Map < String , String > gePreferencesMap(Criteria criteria) {
+ private Map<String, String> gePreferencesMap(Criteria criteria) {
List userPreferenceList = criteria.list();
- Map < String , String > preferenceMap = new HashMap < String , String
>();
+ Map<String, String> preferenceMap = new HashMap<String, String>();
for (Iterator iter = userPreferenceList.iterator(); iter.hasNext();) {
Preference p = (Preference) iter.next();
preferenceMap.put(p.getKey(), p.getValue());
@@ -183,56 +183,54 @@
this.authenticationService = authenticationService;
}
+ @SuppressWarnings("unchecked")
@Transactional(readOnly = true)
- public List < PreferenceVO > getPreferences(PreferenceVO preference, int
offset, int pageSize, String orderBy,
+ 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);
+ List<PreferenceVO> preferences = new ArrayList<PreferenceVO>();
+ StringBuffer queryString = new StringBuffer(
+ "select new
com.finalist.cmsc.services.community.domain.PreferenceVO(p.id,a.userId,p.authenticationId,p.module,p.key,p.value)
from Preference as p , Authentication as a where a.id=p.authenticationId ");
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));
- }
-
+ queryString.append("and a.userId like '%" + preference.getUserId()
+ "%' ");
}
-
if (StringUtils.isNotBlank(preference.getModule())) {
- criteria.add(Restrictions.ilike("module", "%" +
preference.getModule() + "%"));
+ queryString.append("and p.module like '%" + preference.getModule()
+ "%' ");
}
if (StringUtils.isNotBlank(preference.getKey())) {
- criteria.add(Restrictions.ilike("key", "%" + preference.getKey() +
"%"));
+ queryString.append("and p.key like '%" + preference.getKey() + "%'
");
}
if (StringUtils.isNotBlank(preference.getValue())) {
- criteria.add(Restrictions.ilike("value", "%" +
preference.getValue() + "%"));
+ queryString.append("and p.value like '%" + preference.getValue() +
"%' ");
}
}
- criteria.setFirstResult(offset);
- criteria.setMaxResults(pageSize);
-
if (StringUtils.isNotEmpty(orderBy)) {
- if (StringUtils.isEmpty(direction) ||
direction.equalsIgnoreCase("down")) {
- criteria.addOrder(Order.desc(orderBy));
+ if (StringUtils.isEmpty(direction) ||
direction.equalsIgnoreCase("down") || direction.equalsIgnoreCase("desc")) {
+ if (StringUtils.equalsIgnoreCase(orderBy, "userId")) {
+ queryString.append("order by a.userId desc");
} else {
- criteria.addOrder(Order.asc(orderBy));
+ queryString.append("order by p." + orderBy + " desc");
}
} else {
- criteria.addOrder(Order.desc("id"));
+ if (StringUtils.equalsIgnoreCase(orderBy, "userId")) {
+ queryString.append("order by a.userId asc");
+ } else {
+ queryString.append("order by p." + orderBy + " asc");
+ }
}
- copyPropertiesToVO(preferences, criteria.list());
+ } else {
+ queryString.append("order by p.id desc");
+ }
+ Query query = getSession().createQuery(queryString.toString());
+ query.setFirstResult(offset).setMaxResults(pageSize);
+ preferences = query.list();
+
return preferences;
}
@Transactional(readOnly = true)
- public List < PreferenceVO > getPreferences(int offset, int pageSize,
String orderBy, String direction) {
+ public List<PreferenceVO> getPreferences(int offset, int pageSize, String
orderBy, String direction) {
return getPreferences(null, offset, pageSize, orderBy, direction);
}
@@ -270,9 +268,9 @@
}
@Transactional(readOnly = true)
- public List < String > getAllUserIds() {
- List < Authentication > authentications =
authenticationService.findAuthentications();
- List < String > userIds = new ArrayList < String >();
+ public List<String> getAllUserIds() {
+ List<Authentication> authentications =
authenticationService.findAuthentications();
+ List<String> userIds = new ArrayList<String>();
for (Authentication authentication : authentications) {
userIds.add(authentication.getUserId());
}
@@ -287,8 +285,8 @@
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 >();
+ List<Authentication> authentications = authentication.list();
+ List<Long> authenticationIds = new ArrayList<Long>();
for (Authentication authe : authentications) {
authenticationIds.add(authe.getId());
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs