← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 6936: Added method for getByLastUpdated, impl on generic idobjectstore. Needs to be exposed on all serv...

 

------------------------------------------------------------
revno: 6936
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2012-05-14 22:24:22 +0200
message:
  Added method for getByLastUpdated, impl on generic idobjectstore. Needs to be exposed on all services, only exposed on OrganisationUnitService and OrganisationUnitController. Only the format year/mm/dd is currenly supported (slashes not dashes).
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java
  dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java
  dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java
  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/organisationunit/DefaultOrganisationUnitService.java
  dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/organisationunit/OrganisationUnitController.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== 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	2012-05-06 18:55:26 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/GenericIdentifiableObjectStore.java	2012-05-14 20:24:22 +0000
@@ -28,6 +28,7 @@
  */
 
 import java.util.Collection;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -95,4 +96,12 @@
      * @return a list of objects.
      */
     List<T> getByUid( Collection<String> uids );
+
+    /**
+     * Returns all objects that are equal to or newer than given date
+     *
+     * @param lastUpdate Date to compare to
+     * @return All objects equal or newer than given date
+     */
+    List<T> getByLastUpdated(Date lastUpdate);
 }

=== 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-05-06 18:55:26 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitService.java	2012-05-14 20:24:22 +0000
@@ -29,10 +29,7 @@
 
 import org.hisp.dhis.hierarchy.HierarchyViolationException;
 
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 /**
  * Defines methods for working with OrganisationUnits.
@@ -158,6 +155,14 @@
     OrganisationUnit getOrganisationUnitByNameIgnoreCase( String name );
 
     /**
+     * Returns all objects that are equal to or newer than given date
+     *
+     * @param lastUpdated Date to compare to
+     * @return All objects equal or newer than given date
+     */
+    List<OrganisationUnit> getOrganisationUnitsByLastUpdated(Date lastUpdated);
+
+    /**
      * Returns all root OrganisationUnits. A root OrganisationUnit is an
      * OrganisationUnit with no parent/the parent set to null.
      *

=== modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java'
--- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java	2012-05-08 17:24:42 +0000
+++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java	2012-05-14 20:24:22 +0000
@@ -98,13 +98,10 @@
         doImport( metaData.getOrganisationUnitGroups(), importOptions, importSummary );
         doImport( metaData.getOrganisationUnitGroupSets(), importOptions, importSummary );
 
-/*
         doImport( metaData.getUsers(), importOptions, importSummary );
         doImport( metaData.getUserGroups(), importOptions, importSummary );
         doImport( metaData.getUserAuthorityGroups(), importOptions, importSummary );
-*/
 
-        /*
         doImport( metaData.getConcepts(), importOptions, importSummary );
         doImport( metaData.getConstants(), importOptions, importSummary );
         doImport( metaData.getDocuments(), importOptions, importSummary );
@@ -119,14 +116,12 @@
         doImport( metaData.getDataElements(), importOptions, importSummary );
         doImport( metaData.getDataElementGroups(), importOptions, importSummary );
         doImport( metaData.getDataElementGroupSets(), importOptions, importSummary );
-*/
 
         doImport( metaData.getIndicatorTypes(), importOptions, importSummary );
         doImport( metaData.getIndicators(), importOptions, importSummary );
         doImport( metaData.getIndicatorGroups(), importOptions, importSummary );
         doImport( metaData.getIndicatorGroupSets(), importOptions, importSummary );
 
-/*
         doImport( metaData.getMaps(), importOptions, importSummary );
         doImport( metaData.getMapLegends(), importOptions, importSummary );
         doImport( metaData.getMapLegendSets(), importOptions, importSummary );
@@ -143,9 +138,8 @@
         doImport( metaData.getCharts(), importOptions, importSummary );
 
         doImport( metaData.getDataSets(), importOptions, importSummary );
-*/
 
-        // cacheManager.clearCache();
+        cacheManager.clearCache();
         objectBridge.destroy();
 
         Date endDate = new Date();

=== modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java'
--- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java	2012-05-08 17:24:42 +0000
+++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultObjectBridge.java	2012-05-14 20:24:22 +0000
@@ -29,19 +29,38 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.hisp.dhis.attribute.Attribute;
+import org.hisp.dhis.chart.Chart;
 import org.hisp.dhis.common.IdentifiableObject;
 import org.hisp.dhis.common.IdentifiableObjectManager;
 import org.hisp.dhis.common.NameableObject;
+import org.hisp.dhis.constant.Constant;
+import org.hisp.dhis.dataelement.*;
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.document.Document;
 import org.hisp.dhis.indicator.Indicator;
 import org.hisp.dhis.indicator.IndicatorGroup;
 import org.hisp.dhis.indicator.IndicatorGroupSet;
 import org.hisp.dhis.indicator.IndicatorType;
+import org.hisp.dhis.mapping.MapLayer;
+import org.hisp.dhis.mapping.MapLegend;
+import org.hisp.dhis.mapping.MapLegendSet;
+import org.hisp.dhis.mapping.MapView;
+import org.hisp.dhis.option.OptionSet;
 import org.hisp.dhis.organisationunit.OrganisationUnit;
 import org.hisp.dhis.organisationunit.OrganisationUnitGroup;
 import org.hisp.dhis.organisationunit.OrganisationUnitGroupSet;
 import org.hisp.dhis.organisationunit.OrganisationUnitLevel;
 import org.hisp.dhis.period.PeriodStore;
 import org.hisp.dhis.period.PeriodType;
+import org.hisp.dhis.report.Report;
+import org.hisp.dhis.reporttable.ReportTable;
+import org.hisp.dhis.sqlview.SqlView;
+import org.hisp.dhis.user.User;
+import org.hisp.dhis.user.UserAuthorityGroup;
+import org.hisp.dhis.user.UserGroup;
+import org.hisp.dhis.validation.ValidationRule;
+import org.hisp.dhis.validation.ValidationRuleGroup;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
@@ -95,6 +114,20 @@
     static
     {
         registeredTypes.add( PeriodType.class );
+        registeredTypes.add( Document.class );
+        registeredTypes.add( Constant.class );
+        registeredTypes.add( Attribute.class );
+        // registeredTypes.add( Concept.class );
+        registeredTypes.add( SqlView.class );
+        registeredTypes.add( Chart.class );
+        registeredTypes.add( Report.class );
+        registeredTypes.add( ReportTable.class );
+        // registeredTypes.add( DataDictionary.class );
+
+        registeredTypes.add( User.class );
+        registeredTypes.add( UserGroup.class );
+        registeredTypes.add( UserAuthorityGroup.class );
+
         registeredTypes.add( OrganisationUnitLevel.class );
         registeredTypes.add( OrganisationUnit.class );
         registeredTypes.add( OrganisationUnitGroup.class );
@@ -104,6 +137,25 @@
         registeredTypes.add( IndicatorType.class );
         registeredTypes.add( IndicatorGroup.class );
         registeredTypes.add( IndicatorGroupSet.class );
+
+        registeredTypes.add( DataElement.class );
+        registeredTypes.add( OptionSet.class );
+        registeredTypes.add( DataElementGroup.class );
+        registeredTypes.add( DataElementGroupSet.class );
+        registeredTypes.add( DataElementCategory.class );
+        registeredTypes.add( DataElementCategoryOption.class );
+        registeredTypes.add( DataElementCategoryCombo.class );
+        registeredTypes.add( DataElementCategoryOptionCombo.class );
+
+        registeredTypes.add( ValidationRule.class );
+        registeredTypes.add( ValidationRuleGroup.class );
+
+        registeredTypes.add( DataSet.class );
+
+        registeredTypes.add( MapView.class );
+        registeredTypes.add( MapLayer.class );
+        registeredTypes.add( MapLegend.class );
+        registeredTypes.add( MapLegendSet.class );
     }
 
     @Override
@@ -243,7 +295,7 @@
         }
         else
         {
-            log.warn( "Trying to save unsupported type.. object discarded." );
+            log.warn( "Trying to save unsupported type + " + object.getClass() + " with object " + object + " object discarded." );
         }
     }
 
@@ -262,7 +314,7 @@
         }
         else
         {
-            log.warn( "Trying to update unsupported type.. object discarded." );
+            log.warn( "Trying to update unsupported type + " + object.getClass() + " with object " + object + " object discarded." );
         }
     }
 
@@ -277,11 +329,11 @@
         }
         else if ( objects.size() > 1 )
         {
-            log.debug( "Multiple objects found.. object discarded, returning null." );
+            log.debug( "Multiple objects found for " + object + ", object discarded, returning null." );
         }
         else
         {
-            log.debug( "No object found, returning null." );
+            log.debug( "No object found for " + object + ", returning null." );
         }
 
         return null;

=== 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	2011-12-09 19:30:02 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/hibernate/HibernateIdentifiableObjectStore.java	2012-05-14 20:24:22 +0000
@@ -31,6 +31,9 @@
 import org.hisp.dhis.common.GenericIdentifiableObjectStore;
 import org.hisp.dhis.hibernate.HibernateGenericStore;
 
+import java.util.Date;
+import java.util.List;
+
 /**
  * @author bobj
  */

=== 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-05-06 18:55:26 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/organisationunit/DefaultOrganisationUnitService.java	2012-05-14 20:24:22 +0000
@@ -205,6 +205,12 @@
         return organisationUnitStore.getOrganisationUnitByNameIgnoreCase( name );
     }
 
+    @Override
+    public List<OrganisationUnit> getOrganisationUnitsByLastUpdated( Date lastUpdated )
+    {
+        return organisationUnitStore.getByLastUpdated( lastUpdated );
+    }
+
     public Collection<OrganisationUnit> getRootOrganisationUnits()
     {
         return organisationUnitStore.getRootOrganisationUnits();

=== 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	2012-05-14 18:21:39 +0000
+++ dhis-2/dhis-support/dhis-support-hibernate/src/main/java/org/hisp/dhis/hibernate/HibernateGenericStore.java	2012-05-14 20:24:22 +0000
@@ -41,6 +41,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -313,25 +314,34 @@
         criteria.add( Restrictions.ilike( "name", "%" + name + "%" ) );
         return ((Number) criteria.uniqueResult()).intValue();
     }
-    
+
     @Override
     public List<T> getByUid( Collection<String> uids )
     {
         List<T> list = new ArrayList<T>();
-        
-        if ( uids != null )
+
+        for ( String uid : uids )
         {
-            for ( String uid : uids )
+            if ( uids != null )
             {
                 T object = getByUid( uid );
-                
+
                 if ( object != null )
                 {
                     list.add( object );
                 }
             }
         }
-        
+
         return list;
     }
+
+    @Override
+    public List<T> getByLastUpdated( Date lastUpdated )
+    {
+        Criteria criteria = getCriteria();
+        criteria.add( Restrictions.or( Restrictions.eq( "lastUpdated", lastUpdated ), Restrictions.gt( "lastUpdated", lastUpdated ) ) );
+
+        return criteria.list();
+    }
 }

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/organisationunit/OrganisationUnitController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/organisationunit/OrganisationUnitController.java	2012-05-13 16:59:37 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/organisationunit/OrganisationUnitController.java	2012-05-14 20:24:22 +0000
@@ -18,7 +18,6 @@
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseStatus;
 
 import javax.servlet.http.HttpServletRequest;
@@ -41,7 +40,7 @@
 
     @Autowired
     private ObjectPersister objectPersister;
-    
+
     @Autowired
     private IdentifiableObjectManager identifiableObjectManager;
 
@@ -54,7 +53,11 @@
     {
         OrganisationUnits organisationUnits = new OrganisationUnits();
 
-        if ( params.isPaging() )
+        if(params.getLastUpdated() != null)
+        {
+            organisationUnits.setOrganisationUnits( organisationUnitService.getOrganisationUnitsByLastUpdated( params.getLastUpdated() ) );
+        }
+        else if ( params.isPaging() )
         {
             int total = organisationUnitService.getNumberOfOrganisationUnits();
 
@@ -98,12 +101,12 @@
 
         return "organisationUnit";
     }
-    
+
     @RequestMapping( value = "/search/{query}", method = RequestMethod.GET )
     public String searchOrganisationUnit( @PathVariable String query, IdentifiableObjectParams params, Model model, HttpServletRequest request )
     {
         OrganisationUnit organisationUnit = identifiableObjectManager.search( OrganisationUnit.class, query );
-        
+
         if ( params.hasLinks() )
         {
             new WebLinkPopulator( request ).addLinks( organisationUnit );