From 902379bda204e429f9cb8955c4c6055f353dedf5 Mon Sep 17 00:00:00 2001 From: Henri Herscher Date: Tue, 3 Jan 2006 22:48:24 +0000 Subject: Added service methods to determine the number of objects git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@117 09dcff7a-b715-0410-9601-b79a96267cd0 --- orkbasej/java/net/sf/oreka/srvc/ObjectService.java | 1 + .../java/net/sf/oreka/srvc/ObjectServiceHbn.java | 33 ++++++++++++++++++ orkbasej/java/net/sf/oreka/srvc/UserService.java | 2 ++ .../java/net/sf/oreka/srvc/UserServiceHbn.java | 39 ++++++++++++++++++++-- 4 files changed, 73 insertions(+), 2 deletions(-) diff --git a/orkbasej/java/net/sf/oreka/srvc/ObjectService.java b/orkbasej/java/net/sf/oreka/srvc/ObjectService.java index a15f323..b404ca2 100644 --- a/orkbasej/java/net/sf/oreka/srvc/ObjectService.java +++ b/orkbasej/java/net/sf/oreka/srvc/ObjectService.java @@ -4,4 +4,5 @@ public interface ObjectService { public void saveObject(Object obj); public Object getObjectById(java.lang.Class cl, int id); + public int getNumObjects(java.lang.Class cl); } diff --git a/orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java b/orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java index d23bc30..06a6274 100644 --- a/orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java +++ b/orkbasej/java/net/sf/oreka/srvc/ObjectServiceHbn.java @@ -4,7 +4,9 @@ import net.sf.oreka.HibernateManager; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.hibernate.Criteria; import org.hibernate.HibernateException; +import org.hibernate.ScrollableResults; import org.hibernate.Session; import org.hibernate.Transaction; @@ -64,4 +66,35 @@ public class ObjectServiceHbn implements ObjectService { if(hbnSession != null) {hbnSession.close();} } } + + public int getNumObjects(java.lang.Class cl) { + + Session hbnSession = null; + int numObjets = 0; + + try + { + hbnSession = HibernateManager.instance().getSession(); + + Criteria crit = hbnSession.createCriteria(cl); + + // figure out total number of objects returned + ScrollableResults scrollRes = crit.scroll(); + if ( scrollRes.last() ) { + numObjets = scrollRes.getRowNumber(); + } + } + catch ( HibernateException he ) { + logger.error("getNumObjects: exception:" + he.getClass().getName()); + } + catch (Exception e) + { + logger.error("getNumObjects: exception:", e); + } + finally { + if(hbnSession != null) {hbnSession.close();} + } + + return numObjets; + } } diff --git a/orkbasej/java/net/sf/oreka/srvc/UserService.java b/orkbasej/java/net/sf/oreka/srvc/UserService.java index 39e71c7..93de0ef 100644 --- a/orkbasej/java/net/sf/oreka/srvc/UserService.java +++ b/orkbasej/java/net/sf/oreka/srvc/UserService.java @@ -17,4 +17,6 @@ public interface UserService { public String getUserLoginStrings(int userId); public void setUserLoginStrings(int userId, String loginStringsCsv); + + public int getNumNonDisabledUsers(); } diff --git a/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java b/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java index 069f1d3..4e28cc7 100644 --- a/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java +++ b/orkbasej/java/net/sf/oreka/srvc/UserServiceHbn.java @@ -15,11 +15,13 @@ import net.sf.oreka.persistent.User; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.ScrollableResults; import org.hibernate.Session; import org.hibernate.Transaction; +import org.hibernate.criterion.Expression; public class UserServiceHbn implements UserService { @@ -127,7 +129,7 @@ public class UserServiceHbn implements UserService { // figure out total number of users returned ScrollableResults scrollRes = crit.scroll(); if ( scrollRes.last() ) { - numResults = scrollRes.getRowNumber()+1; + numResults = scrollRes.getRowNumber(); } // get only one page worth of users @@ -148,7 +150,7 @@ public class UserServiceHbn implements UserService { ScrollableResults scrollRes = query.scroll(); if ( scrollRes.last() ) { - numResults = scrollRes.getRowNumber()+1; + numResults = scrollRes.getRowNumber(); } // get only one page worth of users @@ -389,4 +391,37 @@ public class UserServiceHbn implements UserService { } return loginStringsCsv; } + + public int getNumNonDisabledUsers() { + + Session hbnSession = null; + int numUsers = 0; + + try + { + hbnSession = HibernateManager.instance().getSession(); + + Criteria crit = hbnSession.createCriteria(User.class); + crit.add( Expression.eq( "disabled", false ) ); + crit.add( Expression.eq( "deleted", false ) ); + + // figure out total number of objects returned + ScrollableResults scrollRes = crit.scroll(); + if ( scrollRes.last() ) { + numUsers = scrollRes.getRowNumber(); + } + } + catch ( HibernateException he ) { + logger.error("getNumNonDisabledUsers: exception:" + he.getClass().getName()); + } + catch (Exception e) + { + logger.error("getNumNonDisabledUsers: exception:", e); + } + finally { + if(hbnSession != null) {hbnSession.close();} + } + + return numUsers; + } } -- cgit v1.2.3