=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java 2014-09-11 06:39:30 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java 2014-11-17 19:21:36 +0000 @@ -246,6 +246,13 @@ * @return All objects equal or newer than given date. */ List getAllGeLastUpdatedOrderedName( Date lastUpdated ); + + /** + * Returns the date of the last updated object. + * + * @return a Date / time stamp. + */ + Date getLastUpdated(); /** * Returns the number of objects that are equal to or newer than given last updated date. === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdentifiableObjectManager.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdentifiableObjectManager.java 2014-10-23 05:40:21 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdentifiableObjectManager.java 2014-11-17 19:21:36 +0000 @@ -92,6 +92,8 @@ Collection getByLastUpdatedSorted( Class clazz, Date lastUpdated ); Collection getByCreatedSorted( Class clazz, Date created ); + + Date getLastUpdated( Class clazz ); void delete( IdentifiableObject object ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/DefaultIdentifiableObjectManager.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/DefaultIdentifiableObjectManager.java 2014-10-23 05:40:21 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/DefaultIdentifiableObjectManager.java 2014-11-17 19:21:36 +0000 @@ -532,6 +532,19 @@ } @Override + public Date getLastUpdated( Class clazz ) + { + GenericIdentifiableObjectStore store = getIdentifiableObjectStore( clazz ); + + if ( store == null ) + { + return null; + } + + return store.getLastUpdated(); + } + + @Override public Set convertToId( Class clazz, Collection uids ) { GenericIdentifiableObjectStore store = getIdentifiableObjectStore( clazz ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateIdentifiableObjectStore.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateIdentifiableObjectStore.java 2014-09-24 10:54:15 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateIdentifiableObjectStore.java 2014-11-17 19:21:36 +0000 @@ -28,6 +28,11 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.Query; @@ -41,11 +46,6 @@ import org.hisp.dhis.hibernate.HibernateGenericStore; import org.hisp.dhis.hibernate.exception.ReadAccessDeniedException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.List; - /** * @author bobj */ @@ -394,6 +394,15 @@ } @Override + public Date getLastUpdated() + { + return (Date) getClazzCriteria().setProjection( Projections.property( "lastUpdated" ) ) + .addOrder( Order.desc( "lastUpdated" ) ) + .setMaxResults( 1 ) + .setCacheable( true ).uniqueResult(); + } + + @Override @SuppressWarnings("unchecked") public List getByDataDimension( boolean dataDimension ) { === modified file 'dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java' --- dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java 2014-10-17 17:55:45 +0000 +++ dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java 2014-11-17 19:21:36 +0000 @@ -227,7 +227,7 @@ { return sessionFactory.getCurrentSession().createCriteria( getClazz() ); } - + /** * Creates a Criteria for the implementation Class type restricted by the * given Criterions.