=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java 2012-12-11 20:46:36 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java 2012-12-13 10:47:58 +0000 @@ -29,7 +29,11 @@ import org.hisp.dhis.hierarchy.HierarchyViolationException; -import java.util.*; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * Defines methods for working with OrganisationUnits. @@ -120,7 +124,7 @@ * @return a collection of all OrganisationUnits, or an empty collection if * there are no OrganisationUnits. */ - Collection getAllOrganisationUnitsByStatus( boolean active ); + Collection getAllOrganisationUnitsByStatus( boolean status ); /** * Returns all OrganisationUnits by lastUpdated. @@ -134,12 +138,12 @@ /** * Returns all OrganisationUnits by status and lastUpdated. * - * @param active Get active or inactive + * @param active Get active or inactive * @param lastUpdated OrganisationUnits from this date * @return a collection of all OrganisationUnits, or an empty collection if * there are no OrganisationUnits. */ - Collection getAllOrganisationUnitsByStatusLastUpdated( boolean active, Date lastUpdated ); + Collection getAllOrganisationUnitsByStatusLastUpdated( boolean status, Date lastUpdated ); /** * Returns all OrganisationUnits with corresponding name key based on the given list. @@ -200,11 +204,11 @@ /** * Returns the level of the organisation unit with the given uid. - * + * * @return the level of the organisation unit with the given uid. */ int getLevelOfOrganisationUnit( String uid ); - + /** * Returns all OrganisationUnits which are part of the subtree of the * OrganisationUnit with the given identifer and have no children. @@ -303,6 +307,12 @@ Collection getOrganisationUnitsBetweenByName( String name, int first, int max ); + Collection getOrganisationUnitsBetweenByStatus( boolean status, int first, int max ); + + Collection getOrganisationUnitsBetweenByLastUpdated( Date lastUpdated, int first, int max ); + + Collection getOrganisationUnitsBetweenByStatusLastUpdated( boolean status, Date lastUpdated, int first, int max ); + // ------------------------------------------------------------------------- // OrganisationUnitHierarchy // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitStore.java 2012-12-11 09:10:15 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitStore.java 2012-12-13 10:47:58 +0000 @@ -70,7 +70,7 @@ /** * Returns all OrganisationUnits by status and lastUpdated. * - * @param active Get active or inactive + * @param active Get active or inactive * @param lastUpdated OrganisationUnits from this date * @return a collection of all OrganisationUnits, or an empty collection if * there are no OrganisationUnits. @@ -116,6 +116,42 @@ Set getOrganisationUnitIdsWithoutData(); + + /** + * Retrieves the objects determined by the given first result and max result + * which status is like the current status. + * + * @param status the name which result object names must be like. + * @param first the first result object to return. + * @param max the max number of result objects to return. + * @return collection of objects. + */ + Collection getBetweenByStatus( boolean status, int first, int max ); + + /** + * Retrieves the objects determined by the given first result and max result + * which lastUpdated is larger or equal. + * + * @param lastUpdated the name which result object names must be like. + * @param first the first result object to return. + * @param max the max number of result objects to return. + * @return collection of objects. + */ + Collection getBetweenByLastUpdated( Date lastUpdated, int first, int max ); + + + /** + * Retrieves the objects determined by the given first result and max result + * which status is like the current status, and lastUpdated is larger or equal. + * + * @param status the name which result object names must be like. + * @param lastUpdated the name which result object names must be like. + * @param first the first result object to return. + * @param max the max number of result objects to return. + * @return collection of objects. + */ + Collection getBetweenByStatusLastUpdated( boolean status, Date lastUpdated, int first, int max ); + // ------------------------------------------------------------------------- // OrganisationUnitHierarchy // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2012-12-11 20:46:36 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java 2012-12-13 10:47:58 +0000 @@ -39,7 +39,17 @@ import org.hisp.dhis.version.VersionService; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; /** * @author Torgeir Lorange Ostby @@ -152,9 +162,9 @@ } @Override - public Collection getAllOrganisationUnitsByStatus( boolean active ) + public Collection getAllOrganisationUnitsByStatus( boolean status ) { - return organisationUnitStore.getAllOrganisationUnitsByStatus( active ); + return organisationUnitStore.getAllOrganisationUnitsByStatus( status ); } @Override @@ -164,9 +174,9 @@ } @Override - public Collection getAllOrganisationUnitsByStatusLastUpdated( boolean active, Date lastUpdated ) + public Collection getAllOrganisationUnitsByStatusLastUpdated( boolean status, Date lastUpdated ) { - return organisationUnitStore.getAllOrganisationUnitsByStatusLastUpdated( active, lastUpdated ); + return organisationUnitStore.getAllOrganisationUnitsByStatusLastUpdated( status, lastUpdated ); } public void searchOrganisationUnitByName( List orgUnits, String key ) @@ -550,6 +560,24 @@ return organisationUnitStore.getBetweenByName( name, first, max ); } + @Override + public Collection getOrganisationUnitsBetweenByStatus( boolean status, int first, int max ) + { + return organisationUnitStore.getBetweenByStatus( status, first, max ); + } + + @Override + public Collection getOrganisationUnitsBetweenByLastUpdated( Date lastUpdated, int first, int max ) + { + return organisationUnitStore.getBetweenByLastUpdated( lastUpdated, first, max ); + } + + @Override + public Collection getOrganisationUnitsBetweenByStatusLastUpdated( boolean status, Date lastUpdated, int first, int max ) + { + return organisationUnitStore.getBetweenByStatusLastUpdated( status, lastUpdated, first, max ); + } + // ------------------------------------------------------------------------- // OrganisationUnitHierarchy // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitStore.java 2012-12-12 12:32:51 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/hibernate/HibernateOrganisationUnitStore.java 2012-12-13 10:47:58 +0000 @@ -27,18 +27,9 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Timestamp; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.criterion.Restrictions; import org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore; @@ -50,6 +41,16 @@ import org.hisp.dhis.system.objectmapper.OrganisationUnitRelationshipRowMapper; import org.springframework.jdbc.core.RowCallbackHandler; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + /** * @author Kristian Nordal */ @@ -63,7 +64,7 @@ @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public Collection getAllOrganisationUnitsByStatus( boolean active ) { Query query = getQuery( "from OrganisationUnit o where o.active is :active" ); @@ -79,7 +80,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public Collection getAllOrganisationUnitsByStatusLastUpdated( boolean active, Date lastUpdated ) { return getCriteria().add( Restrictions.ge( "lastUpdated", lastUpdated ) ).add( Restrictions.eq( "active", active ) ).list(); @@ -92,7 +93,7 @@ } @Override - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public Collection getRootOrganisationUnits() { return getQuery( "from OrganisationUnit o where o.parent is null" ).list(); @@ -208,6 +209,36 @@ return units; } + @Override + public Collection getBetweenByStatus( boolean status, int first, int max ) + { + Criteria criteria = getCriteria().add( Restrictions.eq( "active", status ) ); + criteria.setFirstResult( first ); + criteria.setMaxResults( max ); + + return criteria.list(); + } + + @Override + public Collection getBetweenByLastUpdated( Date lastUpdated, int first, int max ) + { + Criteria criteria = getCriteria().add( Restrictions.ge( "lastUpdated", lastUpdated ) ); + criteria.setFirstResult( first ); + criteria.setMaxResults( max ); + + return criteria.list(); + } + + @Override + public Collection getBetweenByStatusLastUpdated( boolean status, Date lastUpdated, int first, int max ) + { + Criteria criteria = getCriteria().add( Restrictions.ge( "lastUpdated", lastUpdated ) ).add( Restrictions.eq( "active", status ) ); + criteria.setFirstResult( first ); + criteria.setMaxResults( max ); + + return criteria.list(); + } + // ------------------------------------------------------------------------- // OrganisationUnitHierarchy // -------------------------------------------------------------------------