=== 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 2012-04-11 15:11:09 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/IdentifiableObjectManager.java 2012-04-13 10:38:21 +0000 @@ -42,7 +42,7 @@ void update( IdentifiableObject object ); - void get( Class clazz, String uid ); + T get( Class clazz, String uid ); Collection getAll( Class clazz ); === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java 2012-04-10 21:41:34 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java 2012-04-13 10:38:21 +0000 @@ -419,6 +419,7 @@ } @JsonProperty + @JsonSerialize( contentAs = BaseIdentifiableObject.class ) @JsonView( {DetailedView.class, ExportView.class} ) @JacksonXmlElementWrapper( localName = "sections", namespace = Dxf2Namespace.NAMESPACE ) @JacksonXmlProperty( localName = "section", namespace = Dxf2Namespace.NAMESPACE ) === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/Section.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/Section.java 2012-03-27 17:38:48 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/Section.java 2012-04-13 10:38:21 +0000 @@ -160,6 +160,10 @@ // Getters and setters // ------------------------------------------------------------------------- + @JsonProperty + @JsonSerialize( contentAs = BaseIdentifiableObject.class ) + @JsonView( {DetailedView.class, ExportView.class} ) + @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public DataSet getDataSet() { return dataSet; @@ -190,9 +194,6 @@ this.dataElements.add( dataElement ); } - @JsonProperty - @JsonView( {DetailedView.class, ExportView.class} ) - @JacksonXmlProperty( namespace = Dxf2Namespace.NAMESPACE ) public int getSortOrder() { return sortOrder; === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/SectionService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/SectionService.java 2011-12-26 10:07:59 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/SectionService.java 2012-04-13 10:38:21 +0000 @@ -64,6 +64,14 @@ Section getSection( int id ); /** + * Retrieves the Section with the given identifier (uid). + * + * @param uid the identifier of the Section to retrieve. + * @return the Section. + */ + Section getSection( String uid ); + + /** * Retrieves the Section with the given name. * * @param name the name of the Section to retrieve. === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/SectionStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/SectionStore.java 2011-12-26 10:07:59 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/SectionStore.java 2012-04-13 10:38:21 +0000 @@ -27,16 +27,16 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import org.hisp.dhis.common.GenericStore; +import org.hisp.dhis.common.GenericIdentifiableObjectStore; public interface SectionStore - extends GenericStore
+ extends GenericIdentifiableObjectStore
{ String ID = SectionStore.class.getName(); /** * Retrieves the Section with the given name and the given DataSet. - * + * * @param name the name of the Section to retrieve. * @return the Section. */ === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/Period.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/Period.java 2012-04-05 11:57:23 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/Period.java 2012-04-13 10:38:21 +0000 @@ -27,18 +27,18 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonView; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import org.hisp.dhis.common.BaseNameableObject; import org.hisp.dhis.common.Dxf2Namespace; import org.hisp.dhis.common.Weighted; import org.hisp.dhis.common.view.DetailedView; +import org.hisp.dhis.common.view.ExportView; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonView; -import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; /** * @author Kristian Nordal @@ -54,7 +54,7 @@ private static final long serialVersionUID = -4445992494203466044L; public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd"; - + private static final String SEPARATOR = "_"; /** @@ -120,7 +120,7 @@ { return getIsoDate(); } - + /** * Returns an ISO8601 formatted string version of the period * @@ -215,28 +215,27 @@ format.applyPattern( DEFAULT_DATE_FORMAT ); return dateString != null ? format.parse( dateString ) : null; - } - catch ( ParseException ex ) + } catch ( ParseException ex ) { throw new RuntimeException( "Failed to parse medium date", ex ); } } - + /** * Return the potential number of periods of the given period type which is * spanned by this period. - * + * * @param type the period type. - * @return the potential number of periods of the given period type spanned + * @return the potential number of periods of the given period type spanned * by this period. */ public int getPeriodSpan( PeriodType type ) { double no = (double) this.periodType.getFrequencyOrder() / type.getFrequencyOrder(); - + return (int) Math.floor( no ); } - + // ------------------------------------------------------------------------- // hashCode, equals and toString // ------------------------------------------------------------------------- @@ -282,7 +281,7 @@ @Override public String toString() { - return "[" + periodType.getName() + ": " + startDate + " - " + endDate + "]"; + return "[" + (periodType == null ? "" : periodType.getName() + ": ") + startDate + " - " + endDate + "]"; } // ------------------------------------------------------------------------- @@ -290,7 +289,7 @@ // ------------------------------------------------------------------------- @JsonProperty - @JsonView( {DetailedView.class} ) + @JsonView( {DetailedView.class, ExportView.class} ) public Date getEndDate() { return endDate; @@ -313,7 +312,7 @@ } @JsonProperty - @JsonView( {DetailedView.class} ) + @JsonView( {DetailedView.class, ExportView.class} ) public Date getStartDate() { return startDate; === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTable.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTable.java 2012-04-11 04:56:20 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/reporttable/ReportTable.java 2012-04-13 10:38:21 +0000 @@ -283,7 +283,7 @@ private List allUnits = new ArrayList(); /** - * All Indicatrs, including DateElements, Indicators and DataSets. + * All Indicators, including DateElements, Indicators and DataSets. */ private List allIndicators = new ArrayList(); === 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-04-13 08:17:00 +0000 +++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java 2012-04-13 10:38:21 +0000 @@ -29,6 +29,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.hisp.dhis.common.IdentifiableObject; import org.hisp.dhis.dxf2.importsummary.ImportConflict; import org.hisp.dhis.dxf2.importsummary.ImportCount; import org.hisp.dhis.dxf2.importsummary.ImportSummary; @@ -38,6 +39,7 @@ import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; /** === modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultImporter.java' --- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultImporter.java 2012-04-13 08:17:00 +0000 +++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultImporter.java 2012-04-13 10:38:21 +0000 @@ -35,6 +35,7 @@ import org.hisp.dhis.dxf2.metadata.ImportOptions; import org.hisp.dhis.dxf2.metadata.Importer; import org.hisp.dhis.importexport.ImportStrategy; +import org.hisp.dhis.period.Period; import org.hisp.dhis.system.util.ReflectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -117,13 +118,13 @@ return null; } - log.info( "Trying to save new object with UID: " + object.getUid() ); + // log.info( "Trying to save new object with UID: " + object.getUid() ); findAndUpdateReferences( object ); //manager.save( object ); //updateIdMaps( object ); - log.info( "Save successful." ); + // log.info( "Save successful." ); return null; } @@ -143,13 +144,13 @@ return null; } - log.info( "Trying to update object with UID: " + oldObject.getUid() ); + // log.info( "Trying to update object with UID: " + oldObject.getUid() ); findAndUpdateReferences( object ); // oldObject.mergeWith( object ); // manager.update( oldObject ); - log.info( "Update successful." ); + // log.info( "Update successful." ); return null; } @@ -559,6 +560,8 @@ { Field[] fields = object.getClass().getDeclaredFields(); + log.info( "Finding and updating references for " + object.getClass().getSimpleName() ); + for ( Field field : fields ) { if ( ReflectionUtils.isType( field, IdentifiableObject.class ) ) @@ -567,7 +570,24 @@ if ( identifiableObject != null ) { - log.info( "VERIFYING: " + identifiableObject ); + log.info( "Verifying field " + field.getName() ); + + if ( Period.class.isAssignableFrom( identifiableObject.getClass() ) ) + { + log.info( "Skipping Period.class" ); + } + else + { + IdentifiableObject ref = manager.get( identifiableObject.getClass(), identifiableObject.getUid() ); + + if ( ref != null ) + { + } + else + { + log.info( "Reference " + identifiableObject + " not found." ); + } + } } } else @@ -578,9 +598,32 @@ { Collection identifiableObjects = ReflectionUtils.invokeGetterMethod( field.getName(), object ); - if ( !identifiableObjects.isEmpty() ) - { - log.info( "VERIFYING: " + identifiableObjects ); + if ( identifiableObjects == null ) + { + log.info( "identifiableObjects is null for field " + field.getName() ); + } + else if ( !identifiableObjects.isEmpty() ) + { + log.info( "Verifying field " + field.getName() ); + + for ( IdentifiableObject identifiableObject : identifiableObjects ) + { + if ( Period.class.isAssignableFrom( identifiableObject.getClass() ) ) + { + log.info( "Skipping Period.class" ); + continue; + } + + IdentifiableObject ref = manager.get( identifiableObject.getClass(), identifiableObject.getUid() ); + + if ( ref != null ) + { + } + else + { + log.info( "Reference " + identifiableObject + " not found." ); + } + } } } } === 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 2012-04-11 15:11:09 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/DefaultIdentifiableObjectManager.java 2012-04-13 10:38:21 +0000 @@ -75,17 +75,28 @@ public void save( IdentifiableObject object ) { - objectStoreMap.get( object.getClass() ).save( object ); + if ( objectStoreMap.get( object.getClass() ) != null ) + { + objectStoreMap.get( object.getClass() ).save( object ); + } } public void update( IdentifiableObject object ) { - objectStoreMap.get( object.getClass() ).update( object ); + if ( objectStoreMap.get( object.getClass() ) != null ) + { + objectStoreMap.get( object.getClass() ).update( object ); + } } - public void get( Class clazz, String uid ) + public T get( Class clazz, String uid ) { - objectStoreMap.get( clazz ).getByUid( uid ); + if ( objectStoreMap.get( clazz ) != null ) + { + return (T) objectStoreMap.get( clazz ).getByUid( uid ); + } + + return null; } @SuppressWarnings( "unchecked" ) === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/IdentityPopulator.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/IdentityPopulator.java 2012-03-22 10:00:23 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/IdentityPopulator.java 2012-04-13 10:38:21 +0000 @@ -50,7 +50,7 @@ "organisationunit", "orgunitgroup", "orgunitgroupset", "dataelementcategoryoption", "dataelementgroup", "sqlview", "dataelement", "dataelementgroupset", "dataelementcategory", "categorycombo", "categoryoptioncombo", "mapview", "reporttable", "report", "messageconversation", "message", "userinfo", "usergroup", "userrole", "maplegend", - "maplegendset", "maplayer" + "maplegendset", "maplayer", "section" }; // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataset/DefaultSectionService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataset/DefaultSectionService.java 2012-01-27 11:40:18 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataset/DefaultSectionService.java 2012-04-13 10:38:21 +0000 @@ -23,13 +23,13 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import static org.hisp.dhis.i18n.I18nUtils.i18n; - -import java.util.Collection; -import org.hisp.dhis.dataset.Section; import org.hisp.dhis.i18n.I18nService; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; + +import static org.hisp.dhis.i18n.I18nUtils.i18n; + /** * @author Tri * @version $Id$ @@ -89,6 +89,12 @@ return i18n( i18nService, sectionStore.get( id ) ); } + @Override + public Section getSection( String uid ) + { + return i18n( i18nService, sectionStore.getByUid( uid ) ); + } + public Section getSectionByName( String name, Integer dataSetId ) { return i18n( i18nService, sectionStore.getSectionByName( name, dataSetService.getDataSet( dataSetId ) ) ); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElement.hbm.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElement.hbm.xml 2012-02-03 08:35:56 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataelement/hibernate/DataElement.hbm.xml 2012-04-13 10:38:21 +0000 @@ -1,9 +1,9 @@ ] -> + "-//Hibernate/Hibernate Mapping DTD 3.0//EN" + "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" + [] + > @@ -21,7 +21,7 @@ - + @@ -33,8 +33,9 @@ - + @@ -68,8 +69,8 @@ - + === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/Section.hbm.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/Section.hbm.xml 2011-08-27 10:06:52 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/org/hisp/dhis/dataset/hibernate/Section.hbm.xml 2012-04-13 10:38:21 +0000 @@ -1,7 +1,9 @@ + "-//Hibernate/Hibernate Mapping DTD 3.0//EN" + "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" + [] + > @@ -12,23 +14,32 @@ - - - + + + + + + + + + + - + + foreign-key="fk_section_dataelementoperandid" />