← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 21849: renamed MetaData => Metadata, still named metaData in XML

 

------------------------------------------------------------
revno: 21849
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2016-02-02 13:34:22 +0700
message:
  renamed MetaData => Metadata, still named metaData in XML
removed:
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/MetaData.java
  dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/CsvMetaDataImportTest.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/webdomain/WebMetaData.java
added:
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/Metadata.java
  dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/CsvMetadataImportTest.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/webdomain/WebMetadata.java
modified:
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/csv/CsvImportService.java
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/csv/DefaultCsvImportService.java
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/gml/DefaultGmlImportService.java
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultExportService.java
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ExportService.java
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportService.java
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/tasks/ImportMetaDataTask.java
  dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/synch/DefaultSynchronizationManager.java
  dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/DefaultExportServiceTest.java
  dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/JacksonUtilsTest.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DashboardItemController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DataSetController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DimensionController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/MaintenanceController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/MessageConversationController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/dataelement/DataElementGroupController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/dataelement/DataElementOperandController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramDataElementController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/MapViewController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/metadata/FilteredMetaDataController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/metadata/MetaDataController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/organisationunit/OrganisationUnitController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserRoleController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/validation/ValidationRuleController.java
  dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/view/AbstractGridView.java
  dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/util/ImportMetaDataCsvTask.java
  dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/util/ImportMetaDataTask.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-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/csv/CsvImportService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/csv/CsvImportService.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/csv/CsvImportService.java	2016-02-02 06:34:22 +0000
@@ -32,13 +32,13 @@
 import java.io.InputStream;
 
 import org.hisp.dhis.common.IdentifiableObject;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 
 /**
  * @author Lars Helge Overland
  */
 public interface CsvImportService
 {
-    MetaData fromCsv( InputStream input, Class<? extends IdentifiableObject> clazz )
+    Metadata fromCsv( InputStream input, Class<? extends IdentifiableObject> clazz )
         throws IOException;
 }

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/csv/DefaultCsvImportService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/csv/DefaultCsvImportService.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/csv/DefaultCsvImportService.java	2016-02-02 06:34:22 +0000
@@ -43,7 +43,7 @@
 import org.hisp.dhis.dataelement.DataElementCategoryService;
 import org.hisp.dhis.dataelement.DataElementDomain;
 import org.hisp.dhis.dataelement.DataElementGroup;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.expression.Expression;
 import org.hisp.dhis.expression.ExpressionService;
 import org.hisp.dhis.expression.MissingValueStrategy;
@@ -87,48 +87,48 @@
     // -------------------------------------------------------------------------
 
     @Override
-    public MetaData fromCsv( InputStream input, Class<? extends IdentifiableObject> clazz )
+    public Metadata fromCsv( InputStream input, Class<? extends IdentifiableObject> clazz )
         throws IOException
     {
         CsvReader reader = new CsvReader( input, Charset.forName( "UTF-8" ) );
         reader.readRecord(); // Ignore first row
 
-        MetaData metaData = new MetaData();
+        Metadata metadata = new Metadata();
 
         if ( DataElement.class.equals( clazz ) )
         {
-            metaData.setDataElements( dataElementsFromCsv( reader ) );
+            metadata.setDataElements( dataElementsFromCsv( reader ) );
         }
         else if ( DataElementGroup.class.equals( clazz ) )
         {
-            metaData.setDataElementGroups( dataElementGroupsFromCsv( reader ) );
+            metadata.setDataElementGroups( dataElementGroupsFromCsv( reader ) );
         }
         else if ( DataElementCategoryOption.class.equals( clazz ) )
         {
-            metaData.setCategoryOptions( categoryOptionsFromCsv( reader ) );
+            metadata.setCategoryOptions( categoryOptionsFromCsv( reader ) );
         }
         else if ( CategoryOptionGroup.class.equals( clazz ) )
         {
-            metaData.setCategoryOptionGroups( categoryOptionGroupsFromCsv( reader ) );
+            metadata.setCategoryOptionGroups( categoryOptionGroupsFromCsv( reader ) );
         }
         else if ( OrganisationUnit.class.equals( clazz ) )
         {
-            metaData.setOrganisationUnits( organisationUnitsFromCsv( reader ) );
+            metadata.setOrganisationUnits( organisationUnitsFromCsv( reader ) );
         }
         else if ( OrganisationUnitGroup.class.equals( clazz ) )
         {
-            metaData.setOrganisationUnitGroups( organisationUnitGroupsFromCsv( reader ) );
+            metadata.setOrganisationUnitGroups( organisationUnitGroupsFromCsv( reader ) );
         }
         else if ( ValidationRule.class.equals( clazz ) )
         {
-            metaData.setValidationRules( validationRulesFromCsv( reader ) );
+            metadata.setValidationRules( validationRulesFromCsv( reader ) );
         }
         else if ( OptionSet.class.equals( clazz ) )
         {
-            setOptionSetsFromCsv( reader, metaData );
+            setOptionSetsFromCsv( reader, metadata );
         }
 
-        return metaData;
+        return metadata;
     }
 
     // -------------------------------------------------------------------------
@@ -378,7 +378,7 @@
      * <li>option code</li>
      * </ul>
      */
-    private void setOptionSetsFromCsv( CsvReader reader, MetaData metaData )
+    private void setOptionSetsFromCsv( CsvReader reader, Metadata metadata )
         throws IOException
     {
         ListMap<String, Option> nameOptionMap = new ListMap<>();
@@ -409,7 +409,7 @@
 
                 nameOptionMap.putValue( optionSet.getName(), option );
 
-                metaData.getOptions().add( option );
+                metadata.getOptions().add( option );
             }
         }
 
@@ -423,7 +423,7 @@
 
             optionSet.setOptions( options );
 
-            metaData.getOptionSets().add( optionSet );
+            metadata.getOptionSets().add( optionSet );
         }
     }
 

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/gml/DefaultGmlImportService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/gml/DefaultGmlImportService.java	2016-02-01 07:36:06 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/gml/DefaultGmlImportService.java	2016-02-02 06:34:22 +0000
@@ -43,7 +43,7 @@
 import org.hisp.dhis.common.MergeStrategy;
 import org.hisp.dhis.dxf2.common.ImportOptions;
 import org.hisp.dhis.dxf2.metadata.ImportService;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.render.RenderService;
 import org.hisp.dhis.importexport.ImportStrategy;
 import org.hisp.dhis.organisationunit.FeatureType;
@@ -134,8 +134,8 @@
 
         if ( preProcessed.isSuccess && preProcessed.dxf2MetaData != null )
         {
-            MetaData metaData = dxf2ToMetaData( preProcessed.dxf2MetaData );
-            importService.importMetaData( userUid, metaData, importOptions, taskId );
+            Metadata metadata = dxf2ToMetaData( preProcessed.dxf2MetaData );
+            importService.importMetaData( userUid, metadata, importOptions, taskId );
         }
         else
         {
@@ -153,12 +153,12 @@
     private PreProcessingResult preProcessGml( InputStream inputStream )
     {
         InputStream dxfStream = null;
-        MetaData metaData = null;
+        Metadata metadata = null;
 
         try
         {
             dxfStream = transformGml( inputStream );
-            metaData = renderService.fromXml( dxfStream, MetaData.class );
+            metadata = renderService.fromXml( dxfStream, Metadata.class );
         }
         catch ( IOException | TransformerException e )
         {
@@ -171,7 +171,7 @@
 
         Map<String, OrganisationUnit> uidMap = Maps.newHashMap(), codeMap = Maps.newHashMap(), nameMap = Maps.newHashMap();
 
-        matchAndFilterOnIdentifiers( metaData.getOrganisationUnits(), uidMap, codeMap, nameMap );
+        matchAndFilterOnIdentifiers( metadata.getOrganisationUnits(), uidMap, codeMap, nameMap );
 
         Map<String, OrganisationUnit> persistedUidMap = getMatchingPersistedOrgUnits( uidMap.keySet(), IdentifiableProperty.UID );
         Map<String, OrganisationUnit> persistedCodeMap = getMatchingPersistedOrgUnits( codeMap.keySet(), IdentifiableProperty.CODE );
@@ -205,7 +205,7 @@
             mergeNonGeoData( persisted, imported );
         }
 
-        String dxf2MetaData = metaDataToDxf2( metaData );
+        String dxf2MetaData = metaDataToDxf2( metadata );
 
         if ( dxf2MetaData == null )
         {
@@ -303,14 +303,14 @@
         }
     }
 
-    private String metaDataToDxf2( MetaData metaData )
+    private String metaDataToDxf2( Metadata metadata )
     {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         String dxf2 = null;
 
         try
         {
-            renderService.toXml( baos, metaData );
+            renderService.toXml( baos, metadata );
             dxf2 = baos.toString();
         }
         catch ( IOException e )
@@ -325,20 +325,20 @@
         return dxf2;
     }
 
-    private MetaData dxf2ToMetaData( String dxf2Content )
+    private Metadata dxf2ToMetaData( String dxf2Content )
     {
-        MetaData metaData;
+        Metadata metadata;
 
         try
         {
-            metaData = renderService.fromXml( dxf2Content, MetaData.class );
+            metadata = renderService.fromXml( dxf2Content, Metadata.class );
         }
         catch ( IOException e )
         {
-            metaData = new MetaData();
+            metadata = new Metadata();
         }
 
-        return metaData;
+        return metadata;
     }
 
     private String createNotifierErrorMessage( Throwable throwable )

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultExportService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultExportService.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultExportService.java	2016-02-02 06:34:22 +0000
@@ -98,17 +98,17 @@
     //-------------------------------------------------------------------------------------------------------
 
     @Override
-    public MetaData getMetaData( Options options )
+    public Metadata getMetaData( Options options )
     {
         return getMetaData( options, null );
     }
 
     @Override
     @SuppressWarnings("unchecked")
-    public MetaData getMetaData( Options options, TaskId taskId )
+    public Metadata getMetaData( Options options, TaskId taskId )
     {
-        MetaData metaData = new MetaData();
-        metaData.setCreated( new Date() );
+        Metadata metadata = new Metadata();
+        metadata.setCreated( new Date() );
 
         User user = currentUserService.getCurrentUser();
         String username = currentUserService.getCurrentUsername();
@@ -160,7 +160,7 @@
                 notifier.notify( taskId, message );
             }
 
-            ReflectionUtils.invokeSetterMethod( schema.getPlural(), metaData, new ArrayList<>( idObjects ) );
+            ReflectionUtils.invokeSetterMethod( schema.getPlural(), metadata, new ArrayList<>( idObjects ) );
         }
 
         log.info( "Export done at " + new Date() );
@@ -170,7 +170,7 @@
             notifier.notify( taskId, NotificationLevel.INFO, "Export done", true );
         }
 
-        return metaData;
+        return metadata;
     }
 
     //-------------------------------------------------------------------------------------------------------
@@ -178,16 +178,16 @@
     //-------------------------------------------------------------------------------------------------------
 
     @Override
-    public MetaData getFilteredMetaData( FilterOptions filterOptions ) throws IOException
+    public Metadata getFilteredMetaData( FilterOptions filterOptions ) throws IOException
     {
         return getFilteredMetaData( filterOptions, null );
     }
 
     @Override
-    public MetaData getFilteredMetaData( FilterOptions filterOptions, TaskId taskId ) throws IOException
+    public Metadata getFilteredMetaData( FilterOptions filterOptions, TaskId taskId ) throws IOException
     {
-        MetaData metaData = new MetaData();
-        metaData.setCreated( new Date() );
+        Metadata metadata = new Metadata();
+        metadata.setCreated( new Date() );
 
         log.info( "User '" + currentUserService.getCurrentUsername() + "' started export at " + new Date() );
 
@@ -234,7 +234,7 @@
                 notifier.notify( taskId, message );
             }
 
-            ReflectionUtils.invokeSetterMethod( identifiableObjectEntry.getKey(), metaData, identifiableObjectEntry.getValue() );
+            ReflectionUtils.invokeSetterMethod( identifiableObjectEntry.getKey(), metadata, identifiableObjectEntry.getValue() );
         }
 
         log.info( "Export done at " + new Date() );
@@ -244,7 +244,7 @@
             notifier.notify( taskId, NotificationLevel.INFO, "Export done", true );
         }
 
-        return metaData;
+        return metadata;
     }
 
     //-------------------------------------------------------------------------------------------------------

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/DefaultImportService.java	2016-02-02 06:34:22 +0000
@@ -116,25 +116,25 @@
     }
 
     @Override
-    public ImportSummary importMetaData( String userUid, MetaData metaData, TaskId taskId )
-    {
-        return importMetaData( userUid, metaData, ImportOptions.getDefaultImportOptions(), taskId );
-    }
-
-    @Override
-    public ImportSummary importMetaData( String userUid, MetaData metaData )
-    {
-        return importMetaData( userUid, metaData, ImportOptions.getDefaultImportOptions() );
-    }
-
-    @Override
-    public ImportSummary importMetaData( String userUid, MetaData metaData, ImportOptions importOptions )
-    {
-        return importMetaData( userUid, metaData, importOptions, null );
-    }
-
-    @Override
-    public ImportSummary importMetaData( String userUid, MetaData metaData, ImportOptions importOptions, TaskId taskId )
+    public ImportSummary importMetaData( String userUid, Metadata metadata, TaskId taskId )
+    {
+        return importMetaData( userUid, metadata, ImportOptions.getDefaultImportOptions(), taskId );
+    }
+
+    @Override
+    public ImportSummary importMetaData( String userUid, Metadata metadata )
+    {
+        return importMetaData( userUid, metadata, ImportOptions.getDefaultImportOptions() );
+    }
+
+    @Override
+    public ImportSummary importMetaData( String userUid, Metadata metadata, ImportOptions importOptions )
+    {
+        return importMetaData( userUid, metadata, importOptions, null );
+    }
+
+    @Override
+    public ImportSummary importMetaData( String userUid, Metadata metadata, ImportOptions importOptions, TaskId taskId )
     {
         User user = userService.getUser( userUid );
         String username = user != null ? user.getUsername() : null;
@@ -152,7 +152,7 @@
 
         for ( Schema schema : schemaService.getMetadataSchemas() )
         {
-            Object value = ReflectionUtils.invokeGetterMethod( schema.getPlural(), metaData );
+            Object value = ReflectionUtils.invokeGetterMethod( schema.getPlural(), metadata );
 
             if ( value != null )
             {

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ExportService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ExportService.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ExportService.java	2016-02-02 06:34:22 +0000
@@ -42,14 +42,14 @@
  */
 public interface ExportService
 {
-    MetaData getMetaData( Options options );
+    Metadata getMetaData( Options options );
 
-    MetaData getMetaData( Options options, TaskId taskId );
+    Metadata getMetaData( Options options, TaskId taskId );
 
 //  @author Ovidiu Rosu <rosu.ovi@xxxxxxxxx>
-    MetaData getFilteredMetaData( FilterOptions filterOptions ) throws IOException;
+    Metadata getFilteredMetaData( FilterOptions filterOptions ) throws IOException;
 
-    MetaData getFilteredMetaData( FilterOptions filterOptions, TaskId taskId ) throws IOException;
+    Metadata getFilteredMetaData( FilterOptions filterOptions, TaskId taskId ) throws IOException;
 
     List<MetaDataFilter> getFilters();
 

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportService.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportService.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/ImportService.java	2016-02-02 06:34:22 +0000
@@ -41,11 +41,11 @@
 {
     <T extends IdentifiableObject> ImportTypeSummary importObject( String userUid, T object, ImportOptions importOptions );
 
-    ImportSummary importMetaData( String userUid, MetaData metaData );
-
-    ImportSummary importMetaData( String userUid, MetaData metaData, TaskId taskId );
-
-    ImportSummary importMetaData( String userUid, MetaData metaData, ImportOptions importOptions );
-
-    ImportSummary importMetaData( String userUid, MetaData metaData, ImportOptions importOptions, TaskId taskId );
+    ImportSummary importMetaData( String userUid, Metadata metadata );
+
+    ImportSummary importMetaData( String userUid, Metadata metadata, TaskId taskId );
+
+    ImportSummary importMetaData( String userUid, Metadata metadata, ImportOptions importOptions );
+
+    ImportSummary importMetaData( String userUid, Metadata metadata, ImportOptions importOptions, TaskId taskId );
 }

=== removed file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/MetaData.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/MetaData.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/MetaData.java	1970-01-01 00:00:00 +0000
@@ -1,1246 +0,0 @@
-package org.hisp.dhis.dxf2.metadata;
-
-/*
- * Copyright (c) 2004-2016, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
-import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
-import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
-import com.google.common.collect.Lists;
-import org.hisp.dhis.attribute.Attribute;
-import org.hisp.dhis.chart.Chart;
-import org.hisp.dhis.color.Color;
-import org.hisp.dhis.color.ColorSet;
-import org.hisp.dhis.common.DimensionalObject;
-import org.hisp.dhis.common.DxfNamespaces;
-import org.hisp.dhis.common.NameableObject;
-import org.hisp.dhis.common.filter.MetaDataFilter;
-import org.hisp.dhis.constant.Constant;
-import org.hisp.dhis.dashboard.Dashboard;
-import org.hisp.dhis.dashboard.DashboardItem;
-import org.hisp.dhis.dataapproval.DataApprovalLevel;
-import org.hisp.dhis.dataapproval.DataApprovalWorkflow;
-import org.hisp.dhis.dataelement.CategoryOptionGroup;
-import org.hisp.dhis.dataelement.CategoryOptionGroupSet;
-import org.hisp.dhis.dataelement.DataElement;
-import org.hisp.dhis.dataelement.DataElementCategory;
-import org.hisp.dhis.dataelement.DataElementCategoryCombo;
-import org.hisp.dhis.dataelement.DataElementCategoryOption;
-import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
-import org.hisp.dhis.dataelement.DataElementGroup;
-import org.hisp.dhis.dataelement.DataElementGroupSet;
-import org.hisp.dhis.dataelement.DataElementOperand;
-import org.hisp.dhis.dataset.DataSet;
-import org.hisp.dhis.dataset.Section;
-import org.hisp.dhis.document.Document;
-import org.hisp.dhis.dxf2.events.event.Event;
-import org.hisp.dhis.eventchart.EventChart;
-import org.hisp.dhis.eventreport.EventReport;
-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.interpretation.Interpretation;
-import org.hisp.dhis.legend.Legend;
-import org.hisp.dhis.legend.LegendSet;
-import org.hisp.dhis.mapping.Map;
-import org.hisp.dhis.mapping.MapLayer;
-import org.hisp.dhis.mapping.MapView;
-import org.hisp.dhis.message.MessageConversation;
-import org.hisp.dhis.option.Option;
-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.program.Program;
-import org.hisp.dhis.program.ProgramIndicator;
-import org.hisp.dhis.program.ProgramStage;
-import org.hisp.dhis.program.ProgramStageDataElement;
-import org.hisp.dhis.program.ProgramStageSection;
-import org.hisp.dhis.program.ProgramTrackedEntityAttribute;
-import org.hisp.dhis.program.ProgramValidation;
-import org.hisp.dhis.programrule.ProgramRule;
-import org.hisp.dhis.programrule.ProgramRuleAction;
-import org.hisp.dhis.programrule.ProgramRuleVariable;
-import org.hisp.dhis.relationship.RelationshipType;
-import org.hisp.dhis.report.Report;
-import org.hisp.dhis.reporttable.ReportTable;
-import org.hisp.dhis.schema.Schema;
-import org.hisp.dhis.sqlview.SqlView;
-import org.hisp.dhis.trackedentity.TrackedEntity;
-import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
-import org.hisp.dhis.trackedentity.TrackedEntityAttributeGroup;
-import org.hisp.dhis.translation.Translation;
-import org.hisp.dhis.user.User;
-import org.hisp.dhis.user.UserAuthorityGroup;
-import org.hisp.dhis.user.UserGroup;
-import org.hisp.dhis.validation.ValidationCriteria;
-import org.hisp.dhis.validation.ValidationRule;
-import org.hisp.dhis.validation.ValidationRuleGroup;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-/**
- * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
- */
-@JacksonXmlRootElement( localName = "metaData", namespace = DxfNamespaces.DXF_2_0 )
-public class MetaData
-{
-    private Date created;
-
-    private List<Schema> schemas = Lists.newArrayList();
-
-    private List<Attribute> attributes = new ArrayList<>();
-
-    private List<DataApprovalLevel> dataApprovalLevels = new ArrayList<>();
-
-    private List<DataApprovalWorkflow> dataApprovalWorkflows = new ArrayList<>();
-
-    private List<Document> documents = new ArrayList<>();
-
-    private List<Constant> constants = new ArrayList<>();
-
-    private List<User> users = new ArrayList<>();
-
-    private List<UserAuthorityGroup> userRoles = new ArrayList<>();
-
-    private List<UserGroup> userGroups = new ArrayList<>();
-
-    private List<MessageConversation> messageConversations = new ArrayList<>();
-
-    private List<Interpretation> interpretations = new ArrayList<>();
-
-    private List<Option> options = new ArrayList<>();
-
-    private List<OptionSet> optionSets = new ArrayList<>();
-
-    private List<DataElementCategory> categories = new ArrayList<>();
-
-    private List<DataElementCategoryOption> categoryOptions = new ArrayList<>();
-
-    private List<DataElementCategoryCombo> categoryCombos = new ArrayList<>();
-
-    private List<DataElementCategoryOptionCombo> categoryOptionCombos = new ArrayList<>();
-
-    private List<CategoryOptionGroup> categoryOptionGroups = new ArrayList<>();
-
-    private List<CategoryOptionGroupSet> categoryOptionGroupSets = new ArrayList<>();
-
-    private List<DataElementOperand> dataElementOperands = new ArrayList<>();
-
-    private List<DashboardItem> dashboardItems = new ArrayList<>();
-
-    private List<Dashboard> dashboards = new ArrayList<>();
-
-    private List<DataElement> dataElements = new ArrayList<>();
-
-    private List<DataElementGroup> dataElementGroups = new ArrayList<>();
-
-    private List<DataElementGroupSet> dataElementGroupSets = new ArrayList<>();
-
-    private List<DimensionalObject> dimensions = new ArrayList<>();
-
-    private List<Indicator> indicators = new ArrayList<>();
-
-    private List<IndicatorGroup> indicatorGroups = new ArrayList<>();
-
-    private List<IndicatorGroupSet> indicatorGroupSets = new ArrayList<>();
-
-    private List<IndicatorType> indicatorTypes = new ArrayList<>();
-
-    private List<NameableObject> items = new ArrayList<>();
-
-    private List<OrganisationUnit> organisationUnits = new ArrayList<>();
-
-    private List<OrganisationUnitGroup> organisationUnitGroups = new ArrayList<>();
-
-    private List<OrganisationUnitGroupSet> organisationUnitGroupSets = new ArrayList<>();
-
-    private List<OrganisationUnitLevel> organisationUnitLevels = new ArrayList<>();
-
-    private List<ValidationRule> validationRules = new ArrayList<>();
-
-    private List<ValidationRuleGroup> validationRuleGroups = new ArrayList<>();
-
-    private List<SqlView> sqlViews = new ArrayList<>();
-
-    private List<Chart> charts = new ArrayList<>();
-
-    private List<Report> reports = new ArrayList<>();
-
-    private List<ReportTable> reportTables = new ArrayList<>();
-
-    private List<Map> maps = new ArrayList<>();
-
-    private List<MapView> mapViews = new ArrayList<>();
-
-    private List<Legend> legends = new ArrayList<>();
-
-    private List<LegendSet> legendSets = new ArrayList<>();
-
-    private List<MapLayer> mapLayers = new ArrayList<>();
-
-    private List<Section> sections = new ArrayList<>();
-
-    private List<DataSet> dataSets = new ArrayList<>();
-
-    private List<MetaDataFilter> metaDataFilters = new ArrayList<>();
-
-    private List<Event> events = new ArrayList<>();
-
-    private List<EventReport> eventReports = new ArrayList<>();
-
-    private List<EventChart> eventCharts = new ArrayList<>();
-
-    private List<Program> programs = new ArrayList<>();
-
-    private List<ProgramStage> programStages = new ArrayList<>();
-
-    private List<ProgramStageDataElement> programStageDataElements = new ArrayList<>();
-
-    private List<ProgramIndicator> programIndicators = new ArrayList<>();
-
-    private List<ProgramValidation> programValidations = Lists.newArrayList();
-
-    private List<ProgramStageSection> programStageSections = new ArrayList<>();
-
-    private List<ProgramTrackedEntityAttribute> programTrackedEntityAttributes = new ArrayList<>();
-
-    private List<RelationshipType> relationshipTypes = new ArrayList<>();
-
-    private List<ValidationCriteria> validationCriterias = new ArrayList<>();
-
-    private List<ProgramRule> programRules = new ArrayList<>();
-
-    private List<ProgramRuleAction> programRuleActions = new ArrayList<>();
-
-    private List<ProgramRuleVariable> programRuleVariables = new ArrayList<>();
-
-    private List<TrackedEntity> trackedEntities = new ArrayList<>();
-
-    private List<TrackedEntityAttribute> trackedEntityAttributes = new ArrayList<>();
-
-    private List<TrackedEntityAttributeGroup> trackedEntityAttributeGroups = new ArrayList<>();
-
-    private List<Translation> translations = new ArrayList<>();
-
-    private List<Color> colors = new ArrayList<>();
-
-    private List<ColorSet> colorSets = new ArrayList<>();
-
-    public MetaData()
-    {
-    }
-
-    @JsonProperty
-    @JacksonXmlProperty( isAttribute = true )
-    public Date getCreated()
-    {
-        return created;
-    }
-
-    public void setCreated( Date created )
-    {
-        this.created = created;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "schemas", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "schema", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Schema> getSchemas()
-    {
-        return schemas;
-    }
-
-    public void setSchemas( List<Schema> schemas )
-    {
-        this.schemas = schemas;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "attributes", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "attribute", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Attribute> getAttributes()
-    {
-        return attributes;
-    }
-
-    public void setAttributes( List<Attribute> attributes )
-    {
-        this.attributes = attributes;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dataApprovalLevels", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dataApprovalLevel", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataApprovalLevel> getDataApprovalLevels()
-    {
-        return dataApprovalLevels;
-    }
-
-    public void setDataApprovalLevels( List<DataApprovalLevel> dataApprovalLevels )
-    {
-        this.dataApprovalLevels = dataApprovalLevels;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dataApprovalWorkflows", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dataApprovalWorkflow", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataApprovalWorkflow> getDataApprovalWorkflows()
-    {
-        return dataApprovalWorkflows;
-    }
-
-    public void setDataApprovalWorkflows( List<DataApprovalWorkflow> dataApprovalWorkflows )
-    {
-        this.dataApprovalWorkflows = dataApprovalWorkflows;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "users", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "user", namespace = DxfNamespaces.DXF_2_0 )
-    public List<User> getUsers()
-    {
-        return users;
-    }
-
-    public void setUsers( List<User> users )
-    {
-        this.users = users;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "userRoles", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "userRole", namespace = DxfNamespaces.DXF_2_0 )
-    public List<UserAuthorityGroup> getUserRoles()
-    {
-        return userRoles;
-    }
-
-    public void setUserRoles( List<UserAuthorityGroup> userRoles )
-    {
-        this.userRoles = userRoles;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "userGroups", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "userGroup", namespace = DxfNamespaces.DXF_2_0 )
-    public List<UserGroup> getUserGroups()
-    {
-        return userGroups;
-    }
-
-    public void setUserGroups( List<UserGroup> userGroups )
-    {
-        this.userGroups = userGroups;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "messageConversations", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "messageConversation", namespace = DxfNamespaces.DXF_2_0 )
-    public List<MessageConversation> getMessageConversations()
-    {
-        return messageConversations;
-    }
-
-    public void setMessageConversations( List<MessageConversation> messageConversations )
-    {
-        this.messageConversations = messageConversations;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "interpretations", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "interpretation", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Interpretation> getInterpretations()
-    {
-        return interpretations;
-    }
-
-    public void setInterpretations( List<Interpretation> interpretations )
-    {
-        this.interpretations = interpretations;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dataElements", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dataElement", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataElement> getDataElements()
-    {
-        return dataElements;
-    }
-
-    public void setDataElements( List<DataElement> dataElements )
-    {
-        this.dataElements = dataElements;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "options", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "option", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Option> getOptions()
-    {
-        return options;
-    }
-
-    public void setOptions( List<Option> options )
-    {
-        this.options = options;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "optionSets", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "optionSet", namespace = DxfNamespaces.DXF_2_0 )
-    public List<OptionSet> getOptionSets()
-    {
-        return optionSets;
-    }
-
-    public void setOptionSets( List<OptionSet> optionSets )
-    {
-        this.optionSets = optionSets;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dataElementGroups", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dataElementGroup", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataElementGroup> getDataElementGroups()
-    {
-        return dataElementGroups;
-    }
-
-    public void setDataElementGroups( List<DataElementGroup> dataElementGroups )
-    {
-        this.dataElementGroups = dataElementGroups;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dataElementGroupSets", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dataElementGroupSet", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataElementGroupSet> getDataElementGroupSets()
-    {
-        return dataElementGroupSets;
-    }
-
-    public void setDataElementGroupSets( List<DataElementGroupSet> dataElementGroupSets )
-    {
-        this.dataElementGroupSets = dataElementGroupSets;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "categories", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "category", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataElementCategory> getCategories()
-    {
-        return categories;
-    }
-
-    public void setCategories( List<DataElementCategory> categories )
-    {
-        this.categories = categories;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "categoryOptions", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "categoryOption", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataElementCategoryOption> getCategoryOptions()
-    {
-        return categoryOptions;
-    }
-
-    public void setCategoryOptions( List<DataElementCategoryOption> categoryOptions )
-    {
-        this.categoryOptions = categoryOptions;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "categoryCombos", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "categoryCombo", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataElementCategoryCombo> getCategoryCombos()
-    {
-        return categoryCombos;
-    }
-
-    public void setCategoryCombos( List<DataElementCategoryCombo> categoryCombos )
-    {
-        this.categoryCombos = categoryCombos;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "categoryOptionCombos", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "categoryOptionCombo", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataElementCategoryOptionCombo> getCategoryOptionCombos()
-    {
-        return categoryOptionCombos;
-    }
-
-    public void setCategoryOptionCombos( List<DataElementCategoryOptionCombo> categoryOptionCombos )
-    {
-        this.categoryOptionCombos = categoryOptionCombos;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "categoryOptionGroups", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "categoryOptionGroup", namespace = DxfNamespaces.DXF_2_0 )
-    public List<CategoryOptionGroup> getCategoryOptionGroups()
-    {
-        return categoryOptionGroups;
-    }
-
-    public void setCategoryOptionGroups( List<CategoryOptionGroup> categoryOptionGroups )
-    {
-        this.categoryOptionGroups = categoryOptionGroups;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "categoryOptionGroupSets", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "categoryOptionGroupSet", namespace = DxfNamespaces.DXF_2_0 )
-    public List<CategoryOptionGroupSet> getCategoryOptionGroupSets()
-    {
-        return categoryOptionGroupSets;
-    }
-
-    public void setCategoryOptionGroupSets( List<CategoryOptionGroupSet> categoryOptionGroupSets )
-    {
-        this.categoryOptionGroupSets = categoryOptionGroupSets;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dataElementOperands", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dataElementOperand", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataElementOperand> getDataElementOperands()
-    {
-        return dataElementOperands;
-    }
-
-    public void setDataElementOperands( List<DataElementOperand> dataElementOperands )
-    {
-        this.dataElementOperands = dataElementOperands;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "indicators", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "indicator", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Indicator> getIndicators()
-    {
-        return indicators;
-    }
-
-    public void setIndicators( List<Indicator> indicators )
-    {
-        this.indicators = indicators;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "indicatorGroups", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "indicatorGroup", namespace = DxfNamespaces.DXF_2_0 )
-    public List<IndicatorGroup> getIndicatorGroups()
-    {
-        return indicatorGroups;
-    }
-
-    public void setIndicatorGroups( List<IndicatorGroup> indicatorGroups )
-    {
-        this.indicatorGroups = indicatorGroups;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "indicatorGroupSets", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "indicatorGroupSet", namespace = DxfNamespaces.DXF_2_0 )
-    public List<IndicatorGroupSet> getIndicatorGroupSets()
-    {
-        return indicatorGroupSets;
-    }
-
-    public void setIndicatorGroupSets( List<IndicatorGroupSet> indicatorGroupSets )
-    {
-        this.indicatorGroupSets = indicatorGroupSets;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "indicatorTypes", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "indicatorType", namespace = DxfNamespaces.DXF_2_0 )
-    public List<IndicatorType> getIndicatorTypes()
-    {
-        return indicatorTypes;
-    }
-
-    public void setIndicatorTypes( List<IndicatorType> indicatorTypes )
-    {
-        this.indicatorTypes = indicatorTypes;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "items", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "item", namespace = DxfNamespaces.DXF_2_0 )
-    public List<NameableObject> getItems()
-    {
-        return items;
-    }
-
-    public void setItems( List<NameableObject> items )
-    {
-        this.items = items;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "organisationUnits", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "organisationUnit", namespace = DxfNamespaces.DXF_2_0 )
-    public List<OrganisationUnit> getOrganisationUnits()
-    {
-        return organisationUnits;
-    }
-
-    public void setOrganisationUnits( List<OrganisationUnit> organisationUnits )
-    {
-        this.organisationUnits = organisationUnits;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "organisationUnitGroups", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "organisationUnitGroup", namespace = DxfNamespaces.DXF_2_0 )
-    public List<OrganisationUnitGroup> getOrganisationUnitGroups()
-    {
-        return organisationUnitGroups;
-    }
-
-    public void setOrganisationUnitGroups( List<OrganisationUnitGroup> organisationUnitGroups )
-    {
-        this.organisationUnitGroups = organisationUnitGroups;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "organisationUnitGroupSets", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "organisationUnitGroupSet", namespace = DxfNamespaces.DXF_2_0 )
-    public List<OrganisationUnitGroupSet> getOrganisationUnitGroupSets()
-    {
-        return organisationUnitGroupSets;
-    }
-
-    public void setOrganisationUnitGroupSets( List<OrganisationUnitGroupSet> organisationUnitGroupSets )
-    {
-        this.organisationUnitGroupSets = organisationUnitGroupSets;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "organisationUnitLevels", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "organisationUnitLevel", namespace = DxfNamespaces.DXF_2_0 )
-    public List<OrganisationUnitLevel> getOrganisationUnitLevels()
-    {
-        return organisationUnitLevels;
-    }
-
-    public void setOrganisationUnitLevels( List<OrganisationUnitLevel> organisationUnitLevels )
-    {
-        this.organisationUnitLevels = organisationUnitLevels;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "sections", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "section", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Section> getSections()
-    {
-        return sections;
-    }
-
-    public void setSections( List<Section> sections )
-    {
-        this.sections = sections;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dataSets", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dataSet", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DataSet> getDataSets()
-    {
-        return dataSets;
-    }
-
-    public void setDataSets( List<DataSet> dataSets )
-    {
-        this.dataSets = dataSets;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "validationRules", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "validationRule", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ValidationRule> getValidationRules()
-    {
-        return validationRules;
-    }
-
-    public void setValidationRules( List<ValidationRule> validationRules )
-    {
-        this.validationRules = validationRules;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "validationRuleGroups", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "validationRuleGroup", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ValidationRuleGroup> getValidationRuleGroups()
-    {
-        return validationRuleGroups;
-    }
-
-    public void setValidationRuleGroups( List<ValidationRuleGroup> validationRuleGroups )
-    {
-        this.validationRuleGroups = validationRuleGroups;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "sqlViews", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "sqlView", namespace = DxfNamespaces.DXF_2_0 )
-    public List<SqlView> getSqlViews()
-    {
-        return sqlViews;
-    }
-
-    public void setSqlViews( List<SqlView> sqlViews )
-    {
-        this.sqlViews = sqlViews;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "charts", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "chart", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Chart> getCharts()
-    {
-        return charts;
-    }
-
-    public void setCharts( List<Chart> charts )
-    {
-        this.charts = charts;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "reports", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "report", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Report> getReports()
-    {
-        return reports;
-    }
-
-    public void setReports( List<Report> reports )
-    {
-        this.reports = reports;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "reportTables", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "reportTable", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ReportTable> getReportTables()
-    {
-        return reportTables;
-    }
-
-    public void setReportTables( List<ReportTable> reportTables )
-    {
-        this.reportTables = reportTables;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "documents", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "document", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Document> getDocuments()
-    {
-        return documents;
-    }
-
-    public void setDocuments( List<Document> documents )
-    {
-        this.documents = documents;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "constants", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "constant", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Constant> getConstants()
-    {
-        return constants;
-    }
-
-    public void setConstants( List<Constant> constants )
-    {
-        this.constants = constants;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dashboardItems", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dashboardItem", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DashboardItem> getDashboardItems()
-    {
-        return dashboardItems;
-    }
-
-    public void setDashboardItems( List<DashboardItem> dashboardItems )
-    {
-        this.dashboardItems = dashboardItems;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dashboards", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dashboard", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Dashboard> getDashboards()
-    {
-        return dashboards;
-    }
-
-    public void setDashboards( List<Dashboard> dashboards )
-    {
-        this.dashboards = dashboards;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "maps", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "map", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Map> getMaps()
-    {
-        return maps;
-    }
-
-    public void setMaps( List<Map> maps )
-    {
-        this.maps = maps;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "mapViews", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "mapView", namespace = DxfNamespaces.DXF_2_0 )
-    public List<MapView> getMapViews()
-    {
-        return mapViews;
-    }
-
-    public void setMapViews( List<MapView> mapViews )
-    {
-        this.mapViews = mapViews;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "legends", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "legend", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Legend> getLegends()
-    {
-        return legends;
-    }
-
-    public void setLegends( List<Legend> legends )
-    {
-        this.legends = legends;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "legendSets", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "legendSet", namespace = DxfNamespaces.DXF_2_0 )
-    public List<LegendSet> getLegendSets()
-    {
-        return legendSets;
-    }
-
-    public void setLegendSets( List<LegendSet> legendSets )
-    {
-        this.legendSets = legendSets;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "mapLayers", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "mapLayer", namespace = DxfNamespaces.DXF_2_0 )
-    public List<MapLayer> getMapLayers()
-    {
-        return mapLayers;
-    }
-
-    public void setMapLayers( List<MapLayer> mapLayers )
-    {
-        this.mapLayers = mapLayers;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programs", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "program", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Program> getPrograms()
-    {
-        return programs;
-    }
-
-    public void setPrograms( List<Program> programs )
-    {
-        this.programs = programs;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programStages", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "programStage", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ProgramStage> getProgramStages()
-    {
-        return programStages;
-    }
-
-    public void setProgramStages( List<ProgramStage> programStages )
-    {
-        this.programStages = programStages;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programStageDataElements", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "programStageDataElement", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ProgramStageDataElement> getProgramStageDataElements()
-    {
-        return programStageDataElements;
-    }
-
-    public void setProgramStageDataElements( List<ProgramStageDataElement> programStageDataElements )
-    {
-        this.programStageDataElements = programStageDataElements;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programIndicators", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "programIndicator", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ProgramIndicator> getProgramIndicators()
-    {
-        return programIndicators;
-    }
-
-    public void setProgramIndicators( List<ProgramIndicator> programIndicators )
-    {
-        this.programIndicators = programIndicators;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programValidations", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "programValidation", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ProgramValidation> getProgramValidations()
-    {
-        return programValidations;
-    }
-
-    public void setProgramValidations( List<ProgramValidation> programValidations )
-    {
-        this.programValidations = programValidations;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programStageSections", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "programStageSection", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ProgramStageSection> getProgramStageSections()
-    {
-        return programStageSections;
-    }
-
-    public void setProgramStageSections( List<ProgramStageSection> programStageSections )
-    {
-        this.programStageSections = programStageSections;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programTrackedEntityAttributes", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "programTrackedEntityAttribute", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ProgramTrackedEntityAttribute> getProgramTrackedEntityAttributes()
-    {
-        return programTrackedEntityAttributes;
-    }
-
-    public void setProgramTrackedEntityAttributes( List<ProgramTrackedEntityAttribute> programTrackedEntityAttributes )
-    {
-        this.programTrackedEntityAttributes = programTrackedEntityAttributes;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "relationshipTypes", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "relationshipType", namespace = DxfNamespaces.DXF_2_0 )
-    public List<RelationshipType> getRelationshipTypes()
-    {
-        return relationshipTypes;
-    }
-
-    public void setRelationshipTypes( List<RelationshipType> relationshipTypes )
-    {
-        this.relationshipTypes = relationshipTypes;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "validationCriterias", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "validationCriteria", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ValidationCriteria> getValidationCriterias()
-    {
-        return validationCriterias;
-    }
-
-    public void setValidationCriterias( List<ValidationCriteria> validationCriterias )
-    {
-        this.validationCriterias = validationCriterias;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programRules", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "programRule", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ProgramRule> getProgramRules()
-    {
-        return programRules;
-    }
-
-    public void setProgramRules( List<ProgramRule> programRules )
-    {
-        this.programRules = programRules;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programRuleActions", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "programRuleAction", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ProgramRuleAction> getProgramRuleActions()
-    {
-        return programRuleActions;
-    }
-
-    public void setProgramRuleActions( List<ProgramRuleAction> programRuleActions )
-    {
-        this.programRuleActions = programRuleActions;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "programRuleVariables", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "programRuleVariable", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ProgramRuleVariable> getProgramRuleVariables()
-    {
-        return programRuleVariables;
-    }
-
-    public void setProgramRuleVariables( List<ProgramRuleVariable> programRuleVariables )
-    {
-        this.programRuleVariables = programRuleVariables;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "events", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "event", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Event> getEvents()
-    {
-        return events;
-    }
-
-    public void setEvents( List<Event> events )
-    {
-        this.events = events;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "eventReports", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "eventReport", namespace = DxfNamespaces.DXF_2_0 )
-    public List<EventReport> getEventReports()
-    {
-        return eventReports;
-    }
-
-    public void setEventReports( List<EventReport> eventReports )
-    {
-        this.eventReports = eventReports;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "eventCharts", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "eventChart", namespace = DxfNamespaces.DXF_2_0 )
-    public List<EventChart> getEventCharts()
-    {
-        return eventCharts;
-    }
-
-    public void setEventCharts( List<EventChart> eventCharts )
-    {
-        this.eventCharts = eventCharts;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "trackedEntities", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "trackedEntity", namespace = DxfNamespaces.DXF_2_0 )
-    public List<TrackedEntity> getTrackedEntities()
-    {
-        return trackedEntities;
-    }
-
-    public void setTrackedEntities( List<TrackedEntity> trackedEntities )
-    {
-        this.trackedEntities = trackedEntities;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "trackedEntityAttributes", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "trackedEntityAttribute", namespace = DxfNamespaces.DXF_2_0 )
-    public List<TrackedEntityAttribute> getTrackedEntityAttributes()
-    {
-        return trackedEntityAttributes;
-    }
-
-    public void setTrackedEntityAttributes( List<TrackedEntityAttribute> trackedEntityAttributes )
-    {
-        this.trackedEntityAttributes = trackedEntityAttributes;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "trackedEntityAttributeGroups", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "trackedEntityAttributeGroup", namespace = DxfNamespaces.DXF_2_0 )
-    public List<TrackedEntityAttributeGroup> getTrackedEntityAttributeGroups()
-    {
-        return trackedEntityAttributeGroups;
-    }
-
-    public void setTrackedEntityAttributeGroups( List<TrackedEntityAttributeGroup> trackedEntityAttributeGroups )
-    {
-        this.trackedEntityAttributeGroups = trackedEntityAttributeGroups;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "translations", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "translation", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Translation> getTranslations()
-    {
-        return translations;
-    }
-
-    public void setTranslations( List<Translation> translations )
-    {
-        this.translations = translations;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "dimensions", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "dimension", namespace = DxfNamespaces.DXF_2_0 )
-    public List<DimensionalObject> getDimensions()
-    {
-        return dimensions;
-    }
-
-    public void setDimensions( List<DimensionalObject> dimensions )
-    {
-        this.dimensions = dimensions;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "metaDataFilters", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "metaDataFilter", namespace = DxfNamespaces.DXF_2_0 )
-    public List<MetaDataFilter> getMetaDataFilters()
-    {
-        return metaDataFilters;
-    }
-
-    public void setMetaDataFilters( List<MetaDataFilter> metaDataFilters )
-    {
-        this.metaDataFilters = metaDataFilters;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "colors", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "color", namespace = DxfNamespaces.DXF_2_0 )
-    public List<Color> getColors()
-    {
-        return colors;
-    }
-
-    public void setColors( List<Color> colors )
-    {
-        this.colors = colors;
-    }
-
-    @JsonProperty
-    @JacksonXmlElementWrapper( localName = "colorSets", namespace = DxfNamespaces.DXF_2_0 )
-    @JacksonXmlProperty( localName = "colorSet", namespace = DxfNamespaces.DXF_2_0 )
-    public List<ColorSet> getColorSets()
-    {
-        return colorSets;
-    }
-
-    public void setColorSets( List<ColorSet> colorSets )
-    {
-        this.colorSets = colorSets;
-    }
-
-    @Override
-    public String toString()
-    {
-        return "MetaData{" +
-            "created=" + created +
-            ", schemas=" + schemas +
-            ", attributes=" + attributes +
-            ", documents=" + documents +
-            ", constants=" + constants +
-            ", users=" + users +
-            ", userRoles=" + userRoles +
-            ", userGroups=" + userGroups +
-            ", messageConversations=" + messageConversations +
-            ", interpretations=" + interpretations +
-            ", optionSets=" + optionSets +
-            ", categories=" + categories +
-            ", categoryOptions=" + categoryOptions +
-            ", categoryCombos=" + categoryCombos +
-            ", categoryOptionCombos=" + categoryOptionCombos +
-            ", categoryOptionGroups=" + categoryOptionGroups +
-            ", categoryOptionGroupSets=" + categoryOptionGroupSets +
-            ", dataElementOperands=" + dataElementOperands +
-            ", dashboards=" + dashboards +
-            ", dataElements=" + dataElements +
-            ", dataElementGroups=" + dataElementGroups +
-            ", dataElementGroupSets=" + dataElementGroupSets +
-            ", dimensions=" + dimensions +
-            ", indicators=" + indicators +
-            ", indicatorGroups=" + indicatorGroups +
-            ", indicatorGroupSets=" + indicatorGroupSets +
-            ", indicatorTypes=" + indicatorTypes +
-            ", items=" + items +
-            ", organisationUnits=" + organisationUnits +
-            ", organisationUnitGroups=" + organisationUnitGroups +
-            ", organisationUnitGroupSets=" + organisationUnitGroupSets +
-            ", organisationUnitLevels=" + organisationUnitLevels +
-            ", validationRules=" + validationRules +
-            ", validationRuleGroups=" + validationRuleGroups +
-            ", sqlViews=" + sqlViews +
-            ", charts=" + charts +
-            ", reports=" + reports +
-            ", reportTables=" + reportTables +
-            ", maps=" + maps +
-            ", mapViews=" + mapViews +
-            ", legends=" + legends +
-            ", legendSets=" + legendSets +
-            ", mapLayers=" + mapLayers +
-            ", sections=" + sections +
-            ", dataSets=" + dataSets +
-            ", programs=" + programs +
-            ", programStages=" + programStages +
-            ", relationshipTypes=" + relationshipTypes +
-            ", metaDataFilters=" + metaDataFilters +
-            ", trackedEntities=" + trackedEntities +
-            ", trackedEntityAttributes=" + trackedEntityAttributes +
-            ", trackedEntityAttributeGroups=" + trackedEntityAttributeGroups +
-            ", colors=" + colors +
-            ", colorSets=" + colorSets +
-            '}';
-    }
-}

=== added file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/Metadata.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/Metadata.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/Metadata.java	2016-02-02 06:34:22 +0000
@@ -0,0 +1,1246 @@
+package org.hisp.dhis.dxf2.metadata;
+
+/*
+ * Copyright (c) 2004-2016, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
+import com.google.common.collect.Lists;
+import org.hisp.dhis.attribute.Attribute;
+import org.hisp.dhis.chart.Chart;
+import org.hisp.dhis.color.Color;
+import org.hisp.dhis.color.ColorSet;
+import org.hisp.dhis.common.DimensionalObject;
+import org.hisp.dhis.common.DxfNamespaces;
+import org.hisp.dhis.common.NameableObject;
+import org.hisp.dhis.common.filter.MetaDataFilter;
+import org.hisp.dhis.constant.Constant;
+import org.hisp.dhis.dashboard.Dashboard;
+import org.hisp.dhis.dashboard.DashboardItem;
+import org.hisp.dhis.dataapproval.DataApprovalLevel;
+import org.hisp.dhis.dataapproval.DataApprovalWorkflow;
+import org.hisp.dhis.dataelement.CategoryOptionGroup;
+import org.hisp.dhis.dataelement.CategoryOptionGroupSet;
+import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataelement.DataElementCategory;
+import org.hisp.dhis.dataelement.DataElementCategoryCombo;
+import org.hisp.dhis.dataelement.DataElementCategoryOption;
+import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
+import org.hisp.dhis.dataelement.DataElementGroup;
+import org.hisp.dhis.dataelement.DataElementGroupSet;
+import org.hisp.dhis.dataelement.DataElementOperand;
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.dataset.Section;
+import org.hisp.dhis.document.Document;
+import org.hisp.dhis.dxf2.events.event.Event;
+import org.hisp.dhis.eventchart.EventChart;
+import org.hisp.dhis.eventreport.EventReport;
+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.interpretation.Interpretation;
+import org.hisp.dhis.legend.Legend;
+import org.hisp.dhis.legend.LegendSet;
+import org.hisp.dhis.mapping.Map;
+import org.hisp.dhis.mapping.MapLayer;
+import org.hisp.dhis.mapping.MapView;
+import org.hisp.dhis.message.MessageConversation;
+import org.hisp.dhis.option.Option;
+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.program.Program;
+import org.hisp.dhis.program.ProgramIndicator;
+import org.hisp.dhis.program.ProgramStage;
+import org.hisp.dhis.program.ProgramStageDataElement;
+import org.hisp.dhis.program.ProgramStageSection;
+import org.hisp.dhis.program.ProgramTrackedEntityAttribute;
+import org.hisp.dhis.program.ProgramValidation;
+import org.hisp.dhis.programrule.ProgramRule;
+import org.hisp.dhis.programrule.ProgramRuleAction;
+import org.hisp.dhis.programrule.ProgramRuleVariable;
+import org.hisp.dhis.relationship.RelationshipType;
+import org.hisp.dhis.report.Report;
+import org.hisp.dhis.reporttable.ReportTable;
+import org.hisp.dhis.schema.Schema;
+import org.hisp.dhis.sqlview.SqlView;
+import org.hisp.dhis.trackedentity.TrackedEntity;
+import org.hisp.dhis.trackedentity.TrackedEntityAttribute;
+import org.hisp.dhis.trackedentity.TrackedEntityAttributeGroup;
+import org.hisp.dhis.translation.Translation;
+import org.hisp.dhis.user.User;
+import org.hisp.dhis.user.UserAuthorityGroup;
+import org.hisp.dhis.user.UserGroup;
+import org.hisp.dhis.validation.ValidationCriteria;
+import org.hisp.dhis.validation.ValidationRule;
+import org.hisp.dhis.validation.ValidationRuleGroup;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@JacksonXmlRootElement( localName = "metaData", namespace = DxfNamespaces.DXF_2_0 )
+public class Metadata
+{
+    private Date created;
+
+    private List<Schema> schemas = Lists.newArrayList();
+
+    private List<Attribute> attributes = new ArrayList<>();
+
+    private List<DataApprovalLevel> dataApprovalLevels = new ArrayList<>();
+
+    private List<DataApprovalWorkflow> dataApprovalWorkflows = new ArrayList<>();
+
+    private List<Document> documents = new ArrayList<>();
+
+    private List<Constant> constants = new ArrayList<>();
+
+    private List<User> users = new ArrayList<>();
+
+    private List<UserAuthorityGroup> userRoles = new ArrayList<>();
+
+    private List<UserGroup> userGroups = new ArrayList<>();
+
+    private List<MessageConversation> messageConversations = new ArrayList<>();
+
+    private List<Interpretation> interpretations = new ArrayList<>();
+
+    private List<Option> options = new ArrayList<>();
+
+    private List<OptionSet> optionSets = new ArrayList<>();
+
+    private List<DataElementCategory> categories = new ArrayList<>();
+
+    private List<DataElementCategoryOption> categoryOptions = new ArrayList<>();
+
+    private List<DataElementCategoryCombo> categoryCombos = new ArrayList<>();
+
+    private List<DataElementCategoryOptionCombo> categoryOptionCombos = new ArrayList<>();
+
+    private List<CategoryOptionGroup> categoryOptionGroups = new ArrayList<>();
+
+    private List<CategoryOptionGroupSet> categoryOptionGroupSets = new ArrayList<>();
+
+    private List<DataElementOperand> dataElementOperands = new ArrayList<>();
+
+    private List<DashboardItem> dashboardItems = new ArrayList<>();
+
+    private List<Dashboard> dashboards = new ArrayList<>();
+
+    private List<DataElement> dataElements = new ArrayList<>();
+
+    private List<DataElementGroup> dataElementGroups = new ArrayList<>();
+
+    private List<DataElementGroupSet> dataElementGroupSets = new ArrayList<>();
+
+    private List<DimensionalObject> dimensions = new ArrayList<>();
+
+    private List<Indicator> indicators = new ArrayList<>();
+
+    private List<IndicatorGroup> indicatorGroups = new ArrayList<>();
+
+    private List<IndicatorGroupSet> indicatorGroupSets = new ArrayList<>();
+
+    private List<IndicatorType> indicatorTypes = new ArrayList<>();
+
+    private List<NameableObject> items = new ArrayList<>();
+
+    private List<OrganisationUnit> organisationUnits = new ArrayList<>();
+
+    private List<OrganisationUnitGroup> organisationUnitGroups = new ArrayList<>();
+
+    private List<OrganisationUnitGroupSet> organisationUnitGroupSets = new ArrayList<>();
+
+    private List<OrganisationUnitLevel> organisationUnitLevels = new ArrayList<>();
+
+    private List<ValidationRule> validationRules = new ArrayList<>();
+
+    private List<ValidationRuleGroup> validationRuleGroups = new ArrayList<>();
+
+    private List<SqlView> sqlViews = new ArrayList<>();
+
+    private List<Chart> charts = new ArrayList<>();
+
+    private List<Report> reports = new ArrayList<>();
+
+    private List<ReportTable> reportTables = new ArrayList<>();
+
+    private List<Map> maps = new ArrayList<>();
+
+    private List<MapView> mapViews = new ArrayList<>();
+
+    private List<Legend> legends = new ArrayList<>();
+
+    private List<LegendSet> legendSets = new ArrayList<>();
+
+    private List<MapLayer> mapLayers = new ArrayList<>();
+
+    private List<Section> sections = new ArrayList<>();
+
+    private List<DataSet> dataSets = new ArrayList<>();
+
+    private List<MetaDataFilter> metaDataFilters = new ArrayList<>();
+
+    private List<Event> events = new ArrayList<>();
+
+    private List<EventReport> eventReports = new ArrayList<>();
+
+    private List<EventChart> eventCharts = new ArrayList<>();
+
+    private List<Program> programs = new ArrayList<>();
+
+    private List<ProgramStage> programStages = new ArrayList<>();
+
+    private List<ProgramStageDataElement> programStageDataElements = new ArrayList<>();
+
+    private List<ProgramIndicator> programIndicators = new ArrayList<>();
+
+    private List<ProgramValidation> programValidations = Lists.newArrayList();
+
+    private List<ProgramStageSection> programStageSections = new ArrayList<>();
+
+    private List<ProgramTrackedEntityAttribute> programTrackedEntityAttributes = new ArrayList<>();
+
+    private List<RelationshipType> relationshipTypes = new ArrayList<>();
+
+    private List<ValidationCriteria> validationCriterias = new ArrayList<>();
+
+    private List<ProgramRule> programRules = new ArrayList<>();
+
+    private List<ProgramRuleAction> programRuleActions = new ArrayList<>();
+
+    private List<ProgramRuleVariable> programRuleVariables = new ArrayList<>();
+
+    private List<TrackedEntity> trackedEntities = new ArrayList<>();
+
+    private List<TrackedEntityAttribute> trackedEntityAttributes = new ArrayList<>();
+
+    private List<TrackedEntityAttributeGroup> trackedEntityAttributeGroups = new ArrayList<>();
+
+    private List<Translation> translations = new ArrayList<>();
+
+    private List<Color> colors = new ArrayList<>();
+
+    private List<ColorSet> colorSets = new ArrayList<>();
+
+    public Metadata()
+    {
+    }
+
+    @JsonProperty
+    @JacksonXmlProperty( isAttribute = true )
+    public Date getCreated()
+    {
+        return created;
+    }
+
+    public void setCreated( Date created )
+    {
+        this.created = created;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "schemas", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "schema", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Schema> getSchemas()
+    {
+        return schemas;
+    }
+
+    public void setSchemas( List<Schema> schemas )
+    {
+        this.schemas = schemas;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "attributes", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "attribute", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Attribute> getAttributes()
+    {
+        return attributes;
+    }
+
+    public void setAttributes( List<Attribute> attributes )
+    {
+        this.attributes = attributes;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dataApprovalLevels", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dataApprovalLevel", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataApprovalLevel> getDataApprovalLevels()
+    {
+        return dataApprovalLevels;
+    }
+
+    public void setDataApprovalLevels( List<DataApprovalLevel> dataApprovalLevels )
+    {
+        this.dataApprovalLevels = dataApprovalLevels;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dataApprovalWorkflows", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dataApprovalWorkflow", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataApprovalWorkflow> getDataApprovalWorkflows()
+    {
+        return dataApprovalWorkflows;
+    }
+
+    public void setDataApprovalWorkflows( List<DataApprovalWorkflow> dataApprovalWorkflows )
+    {
+        this.dataApprovalWorkflows = dataApprovalWorkflows;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "users", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "user", namespace = DxfNamespaces.DXF_2_0 )
+    public List<User> getUsers()
+    {
+        return users;
+    }
+
+    public void setUsers( List<User> users )
+    {
+        this.users = users;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "userRoles", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "userRole", namespace = DxfNamespaces.DXF_2_0 )
+    public List<UserAuthorityGroup> getUserRoles()
+    {
+        return userRoles;
+    }
+
+    public void setUserRoles( List<UserAuthorityGroup> userRoles )
+    {
+        this.userRoles = userRoles;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "userGroups", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "userGroup", namespace = DxfNamespaces.DXF_2_0 )
+    public List<UserGroup> getUserGroups()
+    {
+        return userGroups;
+    }
+
+    public void setUserGroups( List<UserGroup> userGroups )
+    {
+        this.userGroups = userGroups;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "messageConversations", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "messageConversation", namespace = DxfNamespaces.DXF_2_0 )
+    public List<MessageConversation> getMessageConversations()
+    {
+        return messageConversations;
+    }
+
+    public void setMessageConversations( List<MessageConversation> messageConversations )
+    {
+        this.messageConversations = messageConversations;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "interpretations", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "interpretation", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Interpretation> getInterpretations()
+    {
+        return interpretations;
+    }
+
+    public void setInterpretations( List<Interpretation> interpretations )
+    {
+        this.interpretations = interpretations;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dataElements", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dataElement", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataElement> getDataElements()
+    {
+        return dataElements;
+    }
+
+    public void setDataElements( List<DataElement> dataElements )
+    {
+        this.dataElements = dataElements;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "options", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "option", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Option> getOptions()
+    {
+        return options;
+    }
+
+    public void setOptions( List<Option> options )
+    {
+        this.options = options;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "optionSets", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "optionSet", namespace = DxfNamespaces.DXF_2_0 )
+    public List<OptionSet> getOptionSets()
+    {
+        return optionSets;
+    }
+
+    public void setOptionSets( List<OptionSet> optionSets )
+    {
+        this.optionSets = optionSets;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dataElementGroups", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dataElementGroup", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataElementGroup> getDataElementGroups()
+    {
+        return dataElementGroups;
+    }
+
+    public void setDataElementGroups( List<DataElementGroup> dataElementGroups )
+    {
+        this.dataElementGroups = dataElementGroups;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dataElementGroupSets", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dataElementGroupSet", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataElementGroupSet> getDataElementGroupSets()
+    {
+        return dataElementGroupSets;
+    }
+
+    public void setDataElementGroupSets( List<DataElementGroupSet> dataElementGroupSets )
+    {
+        this.dataElementGroupSets = dataElementGroupSets;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "categories", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "category", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataElementCategory> getCategories()
+    {
+        return categories;
+    }
+
+    public void setCategories( List<DataElementCategory> categories )
+    {
+        this.categories = categories;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "categoryOptions", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "categoryOption", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataElementCategoryOption> getCategoryOptions()
+    {
+        return categoryOptions;
+    }
+
+    public void setCategoryOptions( List<DataElementCategoryOption> categoryOptions )
+    {
+        this.categoryOptions = categoryOptions;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "categoryCombos", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "categoryCombo", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataElementCategoryCombo> getCategoryCombos()
+    {
+        return categoryCombos;
+    }
+
+    public void setCategoryCombos( List<DataElementCategoryCombo> categoryCombos )
+    {
+        this.categoryCombos = categoryCombos;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "categoryOptionCombos", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "categoryOptionCombo", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataElementCategoryOptionCombo> getCategoryOptionCombos()
+    {
+        return categoryOptionCombos;
+    }
+
+    public void setCategoryOptionCombos( List<DataElementCategoryOptionCombo> categoryOptionCombos )
+    {
+        this.categoryOptionCombos = categoryOptionCombos;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "categoryOptionGroups", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "categoryOptionGroup", namespace = DxfNamespaces.DXF_2_0 )
+    public List<CategoryOptionGroup> getCategoryOptionGroups()
+    {
+        return categoryOptionGroups;
+    }
+
+    public void setCategoryOptionGroups( List<CategoryOptionGroup> categoryOptionGroups )
+    {
+        this.categoryOptionGroups = categoryOptionGroups;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "categoryOptionGroupSets", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "categoryOptionGroupSet", namespace = DxfNamespaces.DXF_2_0 )
+    public List<CategoryOptionGroupSet> getCategoryOptionGroupSets()
+    {
+        return categoryOptionGroupSets;
+    }
+
+    public void setCategoryOptionGroupSets( List<CategoryOptionGroupSet> categoryOptionGroupSets )
+    {
+        this.categoryOptionGroupSets = categoryOptionGroupSets;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dataElementOperands", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dataElementOperand", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataElementOperand> getDataElementOperands()
+    {
+        return dataElementOperands;
+    }
+
+    public void setDataElementOperands( List<DataElementOperand> dataElementOperands )
+    {
+        this.dataElementOperands = dataElementOperands;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "indicators", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "indicator", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Indicator> getIndicators()
+    {
+        return indicators;
+    }
+
+    public void setIndicators( List<Indicator> indicators )
+    {
+        this.indicators = indicators;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "indicatorGroups", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "indicatorGroup", namespace = DxfNamespaces.DXF_2_0 )
+    public List<IndicatorGroup> getIndicatorGroups()
+    {
+        return indicatorGroups;
+    }
+
+    public void setIndicatorGroups( List<IndicatorGroup> indicatorGroups )
+    {
+        this.indicatorGroups = indicatorGroups;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "indicatorGroupSets", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "indicatorGroupSet", namespace = DxfNamespaces.DXF_2_0 )
+    public List<IndicatorGroupSet> getIndicatorGroupSets()
+    {
+        return indicatorGroupSets;
+    }
+
+    public void setIndicatorGroupSets( List<IndicatorGroupSet> indicatorGroupSets )
+    {
+        this.indicatorGroupSets = indicatorGroupSets;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "indicatorTypes", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "indicatorType", namespace = DxfNamespaces.DXF_2_0 )
+    public List<IndicatorType> getIndicatorTypes()
+    {
+        return indicatorTypes;
+    }
+
+    public void setIndicatorTypes( List<IndicatorType> indicatorTypes )
+    {
+        this.indicatorTypes = indicatorTypes;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "items", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "item", namespace = DxfNamespaces.DXF_2_0 )
+    public List<NameableObject> getItems()
+    {
+        return items;
+    }
+
+    public void setItems( List<NameableObject> items )
+    {
+        this.items = items;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "organisationUnits", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "organisationUnit", namespace = DxfNamespaces.DXF_2_0 )
+    public List<OrganisationUnit> getOrganisationUnits()
+    {
+        return organisationUnits;
+    }
+
+    public void setOrganisationUnits( List<OrganisationUnit> organisationUnits )
+    {
+        this.organisationUnits = organisationUnits;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "organisationUnitGroups", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "organisationUnitGroup", namespace = DxfNamespaces.DXF_2_0 )
+    public List<OrganisationUnitGroup> getOrganisationUnitGroups()
+    {
+        return organisationUnitGroups;
+    }
+
+    public void setOrganisationUnitGroups( List<OrganisationUnitGroup> organisationUnitGroups )
+    {
+        this.organisationUnitGroups = organisationUnitGroups;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "organisationUnitGroupSets", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "organisationUnitGroupSet", namespace = DxfNamespaces.DXF_2_0 )
+    public List<OrganisationUnitGroupSet> getOrganisationUnitGroupSets()
+    {
+        return organisationUnitGroupSets;
+    }
+
+    public void setOrganisationUnitGroupSets( List<OrganisationUnitGroupSet> organisationUnitGroupSets )
+    {
+        this.organisationUnitGroupSets = organisationUnitGroupSets;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "organisationUnitLevels", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "organisationUnitLevel", namespace = DxfNamespaces.DXF_2_0 )
+    public List<OrganisationUnitLevel> getOrganisationUnitLevels()
+    {
+        return organisationUnitLevels;
+    }
+
+    public void setOrganisationUnitLevels( List<OrganisationUnitLevel> organisationUnitLevels )
+    {
+        this.organisationUnitLevels = organisationUnitLevels;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "sections", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "section", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Section> getSections()
+    {
+        return sections;
+    }
+
+    public void setSections( List<Section> sections )
+    {
+        this.sections = sections;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dataSets", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dataSet", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DataSet> getDataSets()
+    {
+        return dataSets;
+    }
+
+    public void setDataSets( List<DataSet> dataSets )
+    {
+        this.dataSets = dataSets;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "validationRules", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "validationRule", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ValidationRule> getValidationRules()
+    {
+        return validationRules;
+    }
+
+    public void setValidationRules( List<ValidationRule> validationRules )
+    {
+        this.validationRules = validationRules;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "validationRuleGroups", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "validationRuleGroup", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ValidationRuleGroup> getValidationRuleGroups()
+    {
+        return validationRuleGroups;
+    }
+
+    public void setValidationRuleGroups( List<ValidationRuleGroup> validationRuleGroups )
+    {
+        this.validationRuleGroups = validationRuleGroups;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "sqlViews", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "sqlView", namespace = DxfNamespaces.DXF_2_0 )
+    public List<SqlView> getSqlViews()
+    {
+        return sqlViews;
+    }
+
+    public void setSqlViews( List<SqlView> sqlViews )
+    {
+        this.sqlViews = sqlViews;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "charts", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "chart", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Chart> getCharts()
+    {
+        return charts;
+    }
+
+    public void setCharts( List<Chart> charts )
+    {
+        this.charts = charts;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "reports", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "report", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Report> getReports()
+    {
+        return reports;
+    }
+
+    public void setReports( List<Report> reports )
+    {
+        this.reports = reports;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "reportTables", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "reportTable", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ReportTable> getReportTables()
+    {
+        return reportTables;
+    }
+
+    public void setReportTables( List<ReportTable> reportTables )
+    {
+        this.reportTables = reportTables;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "documents", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "document", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Document> getDocuments()
+    {
+        return documents;
+    }
+
+    public void setDocuments( List<Document> documents )
+    {
+        this.documents = documents;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "constants", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "constant", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Constant> getConstants()
+    {
+        return constants;
+    }
+
+    public void setConstants( List<Constant> constants )
+    {
+        this.constants = constants;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dashboardItems", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dashboardItem", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DashboardItem> getDashboardItems()
+    {
+        return dashboardItems;
+    }
+
+    public void setDashboardItems( List<DashboardItem> dashboardItems )
+    {
+        this.dashboardItems = dashboardItems;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dashboards", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dashboard", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Dashboard> getDashboards()
+    {
+        return dashboards;
+    }
+
+    public void setDashboards( List<Dashboard> dashboards )
+    {
+        this.dashboards = dashboards;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "maps", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "map", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Map> getMaps()
+    {
+        return maps;
+    }
+
+    public void setMaps( List<Map> maps )
+    {
+        this.maps = maps;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "mapViews", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "mapView", namespace = DxfNamespaces.DXF_2_0 )
+    public List<MapView> getMapViews()
+    {
+        return mapViews;
+    }
+
+    public void setMapViews( List<MapView> mapViews )
+    {
+        this.mapViews = mapViews;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "legends", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "legend", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Legend> getLegends()
+    {
+        return legends;
+    }
+
+    public void setLegends( List<Legend> legends )
+    {
+        this.legends = legends;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "legendSets", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "legendSet", namespace = DxfNamespaces.DXF_2_0 )
+    public List<LegendSet> getLegendSets()
+    {
+        return legendSets;
+    }
+
+    public void setLegendSets( List<LegendSet> legendSets )
+    {
+        this.legendSets = legendSets;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "mapLayers", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "mapLayer", namespace = DxfNamespaces.DXF_2_0 )
+    public List<MapLayer> getMapLayers()
+    {
+        return mapLayers;
+    }
+
+    public void setMapLayers( List<MapLayer> mapLayers )
+    {
+        this.mapLayers = mapLayers;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programs", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "program", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Program> getPrograms()
+    {
+        return programs;
+    }
+
+    public void setPrograms( List<Program> programs )
+    {
+        this.programs = programs;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programStages", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "programStage", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ProgramStage> getProgramStages()
+    {
+        return programStages;
+    }
+
+    public void setProgramStages( List<ProgramStage> programStages )
+    {
+        this.programStages = programStages;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programStageDataElements", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "programStageDataElement", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ProgramStageDataElement> getProgramStageDataElements()
+    {
+        return programStageDataElements;
+    }
+
+    public void setProgramStageDataElements( List<ProgramStageDataElement> programStageDataElements )
+    {
+        this.programStageDataElements = programStageDataElements;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programIndicators", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "programIndicator", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ProgramIndicator> getProgramIndicators()
+    {
+        return programIndicators;
+    }
+
+    public void setProgramIndicators( List<ProgramIndicator> programIndicators )
+    {
+        this.programIndicators = programIndicators;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programValidations", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "programValidation", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ProgramValidation> getProgramValidations()
+    {
+        return programValidations;
+    }
+
+    public void setProgramValidations( List<ProgramValidation> programValidations )
+    {
+        this.programValidations = programValidations;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programStageSections", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "programStageSection", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ProgramStageSection> getProgramStageSections()
+    {
+        return programStageSections;
+    }
+
+    public void setProgramStageSections( List<ProgramStageSection> programStageSections )
+    {
+        this.programStageSections = programStageSections;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programTrackedEntityAttributes", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "programTrackedEntityAttribute", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ProgramTrackedEntityAttribute> getProgramTrackedEntityAttributes()
+    {
+        return programTrackedEntityAttributes;
+    }
+
+    public void setProgramTrackedEntityAttributes( List<ProgramTrackedEntityAttribute> programTrackedEntityAttributes )
+    {
+        this.programTrackedEntityAttributes = programTrackedEntityAttributes;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "relationshipTypes", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "relationshipType", namespace = DxfNamespaces.DXF_2_0 )
+    public List<RelationshipType> getRelationshipTypes()
+    {
+        return relationshipTypes;
+    }
+
+    public void setRelationshipTypes( List<RelationshipType> relationshipTypes )
+    {
+        this.relationshipTypes = relationshipTypes;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "validationCriterias", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "validationCriteria", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ValidationCriteria> getValidationCriterias()
+    {
+        return validationCriterias;
+    }
+
+    public void setValidationCriterias( List<ValidationCriteria> validationCriterias )
+    {
+        this.validationCriterias = validationCriterias;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programRules", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "programRule", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ProgramRule> getProgramRules()
+    {
+        return programRules;
+    }
+
+    public void setProgramRules( List<ProgramRule> programRules )
+    {
+        this.programRules = programRules;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programRuleActions", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "programRuleAction", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ProgramRuleAction> getProgramRuleActions()
+    {
+        return programRuleActions;
+    }
+
+    public void setProgramRuleActions( List<ProgramRuleAction> programRuleActions )
+    {
+        this.programRuleActions = programRuleActions;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "programRuleVariables", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "programRuleVariable", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ProgramRuleVariable> getProgramRuleVariables()
+    {
+        return programRuleVariables;
+    }
+
+    public void setProgramRuleVariables( List<ProgramRuleVariable> programRuleVariables )
+    {
+        this.programRuleVariables = programRuleVariables;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "events", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "event", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Event> getEvents()
+    {
+        return events;
+    }
+
+    public void setEvents( List<Event> events )
+    {
+        this.events = events;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "eventReports", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "eventReport", namespace = DxfNamespaces.DXF_2_0 )
+    public List<EventReport> getEventReports()
+    {
+        return eventReports;
+    }
+
+    public void setEventReports( List<EventReport> eventReports )
+    {
+        this.eventReports = eventReports;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "eventCharts", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "eventChart", namespace = DxfNamespaces.DXF_2_0 )
+    public List<EventChart> getEventCharts()
+    {
+        return eventCharts;
+    }
+
+    public void setEventCharts( List<EventChart> eventCharts )
+    {
+        this.eventCharts = eventCharts;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "trackedEntities", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "trackedEntity", namespace = DxfNamespaces.DXF_2_0 )
+    public List<TrackedEntity> getTrackedEntities()
+    {
+        return trackedEntities;
+    }
+
+    public void setTrackedEntities( List<TrackedEntity> trackedEntities )
+    {
+        this.trackedEntities = trackedEntities;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "trackedEntityAttributes", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "trackedEntityAttribute", namespace = DxfNamespaces.DXF_2_0 )
+    public List<TrackedEntityAttribute> getTrackedEntityAttributes()
+    {
+        return trackedEntityAttributes;
+    }
+
+    public void setTrackedEntityAttributes( List<TrackedEntityAttribute> trackedEntityAttributes )
+    {
+        this.trackedEntityAttributes = trackedEntityAttributes;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "trackedEntityAttributeGroups", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "trackedEntityAttributeGroup", namespace = DxfNamespaces.DXF_2_0 )
+    public List<TrackedEntityAttributeGroup> getTrackedEntityAttributeGroups()
+    {
+        return trackedEntityAttributeGroups;
+    }
+
+    public void setTrackedEntityAttributeGroups( List<TrackedEntityAttributeGroup> trackedEntityAttributeGroups )
+    {
+        this.trackedEntityAttributeGroups = trackedEntityAttributeGroups;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "translations", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "translation", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Translation> getTranslations()
+    {
+        return translations;
+    }
+
+    public void setTranslations( List<Translation> translations )
+    {
+        this.translations = translations;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "dimensions", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "dimension", namespace = DxfNamespaces.DXF_2_0 )
+    public List<DimensionalObject> getDimensions()
+    {
+        return dimensions;
+    }
+
+    public void setDimensions( List<DimensionalObject> dimensions )
+    {
+        this.dimensions = dimensions;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "metaDataFilters", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "metaDataFilter", namespace = DxfNamespaces.DXF_2_0 )
+    public List<MetaDataFilter> getMetaDataFilters()
+    {
+        return metaDataFilters;
+    }
+
+    public void setMetaDataFilters( List<MetaDataFilter> metaDataFilters )
+    {
+        this.metaDataFilters = metaDataFilters;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "colors", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "color", namespace = DxfNamespaces.DXF_2_0 )
+    public List<Color> getColors()
+    {
+        return colors;
+    }
+
+    public void setColors( List<Color> colors )
+    {
+        this.colors = colors;
+    }
+
+    @JsonProperty
+    @JacksonXmlElementWrapper( localName = "colorSets", namespace = DxfNamespaces.DXF_2_0 )
+    @JacksonXmlProperty( localName = "colorSet", namespace = DxfNamespaces.DXF_2_0 )
+    public List<ColorSet> getColorSets()
+    {
+        return colorSets;
+    }
+
+    public void setColorSets( List<ColorSet> colorSets )
+    {
+        this.colorSets = colorSets;
+    }
+
+    @Override
+    public String toString()
+    {
+        return "MetaData{" +
+            "created=" + created +
+            ", schemas=" + schemas +
+            ", attributes=" + attributes +
+            ", documents=" + documents +
+            ", constants=" + constants +
+            ", users=" + users +
+            ", userRoles=" + userRoles +
+            ", userGroups=" + userGroups +
+            ", messageConversations=" + messageConversations +
+            ", interpretations=" + interpretations +
+            ", optionSets=" + optionSets +
+            ", categories=" + categories +
+            ", categoryOptions=" + categoryOptions +
+            ", categoryCombos=" + categoryCombos +
+            ", categoryOptionCombos=" + categoryOptionCombos +
+            ", categoryOptionGroups=" + categoryOptionGroups +
+            ", categoryOptionGroupSets=" + categoryOptionGroupSets +
+            ", dataElementOperands=" + dataElementOperands +
+            ", dashboards=" + dashboards +
+            ", dataElements=" + dataElements +
+            ", dataElementGroups=" + dataElementGroups +
+            ", dataElementGroupSets=" + dataElementGroupSets +
+            ", dimensions=" + dimensions +
+            ", indicators=" + indicators +
+            ", indicatorGroups=" + indicatorGroups +
+            ", indicatorGroupSets=" + indicatorGroupSets +
+            ", indicatorTypes=" + indicatorTypes +
+            ", items=" + items +
+            ", organisationUnits=" + organisationUnits +
+            ", organisationUnitGroups=" + organisationUnitGroups +
+            ", organisationUnitGroupSets=" + organisationUnitGroupSets +
+            ", organisationUnitLevels=" + organisationUnitLevels +
+            ", validationRules=" + validationRules +
+            ", validationRuleGroups=" + validationRuleGroups +
+            ", sqlViews=" + sqlViews +
+            ", charts=" + charts +
+            ", reports=" + reports +
+            ", reportTables=" + reportTables +
+            ", maps=" + maps +
+            ", mapViews=" + mapViews +
+            ", legends=" + legends +
+            ", legendSets=" + legendSets +
+            ", mapLayers=" + mapLayers +
+            ", sections=" + sections +
+            ", dataSets=" + dataSets +
+            ", programs=" + programs +
+            ", programStages=" + programStages +
+            ", relationshipTypes=" + relationshipTypes +
+            ", metaDataFilters=" + metaDataFilters +
+            ", trackedEntities=" + trackedEntities +
+            ", trackedEntityAttributes=" + trackedEntityAttributes +
+            ", trackedEntityAttributeGroups=" + trackedEntityAttributeGroups +
+            ", colors=" + colors +
+            ", colorSets=" + colorSets +
+            '}';
+    }
+}

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/tasks/ImportMetaDataTask.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/tasks/ImportMetaDataTask.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/tasks/ImportMetaDataTask.java	2016-02-02 06:34:22 +0000
@@ -31,7 +31,7 @@
 import org.hisp.dhis.security.SecurityContextRunnable;
 import org.hisp.dhis.dxf2.common.ImportOptions;
 import org.hisp.dhis.dxf2.metadata.ImportService;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.scheduling.TaskId;
 
 /**
@@ -48,21 +48,21 @@
 
     private final TaskId taskId;
 
-    private final MetaData metaData;
+    private final Metadata metadata;
 
-    public ImportMetaDataTask( String userUid, ImportService importService, ImportOptions importOptions, TaskId taskId, MetaData metaData )
+    public ImportMetaDataTask( String userUid, ImportService importService, ImportOptions importOptions, TaskId taskId, Metadata metadata )
     {
         super();
         this.userUid = userUid;
         this.importService = importService;
         this.importOptions = importOptions;
         this.taskId = taskId;
-        this.metaData = metaData;
+        this.metadata = metadata;
     }
 
     @Override
     public void call()
     {
-        importService.importMetaData( userUid, metaData, importOptions, taskId );
+        importService.importMetaData( userUid, metadata, importOptions, taskId );
     }
 }

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/synch/DefaultSynchronizationManager.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/synch/DefaultSynchronizationManager.java	2016-01-07 08:13:54 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/synch/DefaultSynchronizationManager.java	2016-02-02 06:34:22 +0000
@@ -45,7 +45,7 @@
 import org.hisp.dhis.dxf2.importsummary.ImportStatus;
 import org.hisp.dhis.dxf2.importsummary.ImportSummary;
 import org.hisp.dhis.dxf2.metadata.ImportService;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.setting.SettingKey;
 import org.hisp.dhis.setting.SystemSettingManager;
 import org.hisp.dhis.system.util.CodecUtils;
@@ -264,18 +264,18 @@
 
         String json = restTemplate.getForObject( url, String.class );
 
-        MetaData metaData = null;
+        Metadata metadata = null;
 
         try
         {
-            metaData = JacksonUtils.fromJson( json, MetaData.class );
+            metadata = JacksonUtils.fromJson( json, Metadata.class );
         }
         catch ( IOException ex )
         {
             throw new RuntimeException( "Failed to parse remote JSON document", ex );
         }
 
-        org.hisp.dhis.dxf2.metadata.ImportSummary summary = importService.importMetaData( userUid, metaData );
+        org.hisp.dhis.dxf2.metadata.ImportSummary summary = importService.importMetaData( userUid, metadata );
 
         return summary;
     }

=== removed file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/CsvMetaDataImportTest.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/CsvMetaDataImportTest.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/CsvMetaDataImportTest.java	1970-01-01 00:00:00 +0000
@@ -1,117 +0,0 @@
-package org.hisp.dhis.dxf2.metadata;
-
-/*
- * Copyright (c) 2004-2016, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.hisp.dhis.DhisSpringTest;
-import org.hisp.dhis.dataelement.DataElement;
-import org.hisp.dhis.dataelement.DataElementService;
-import org.hisp.dhis.dxf2.common.ImportOptions;
-import org.hisp.dhis.dxf2.csv.CsvImportService;
-import org.hisp.dhis.importexport.ImportStrategy;
-import org.hisp.dhis.option.OptionService;
-import org.hisp.dhis.option.OptionSet;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.io.ClassPathResource;
-
-import static org.junit.Assert.*;
-
-/**
- * @author Lars Helge Overland
- */
-public class CsvMetaDataImportTest
-    extends DhisSpringTest
-{
-    @Autowired
-    private DataElementService dataElementService;
-    
-    @Autowired
-    private OptionService optionService;
-    
-    @Autowired
-    private CsvImportService csvImportService;
-    
-    @Autowired
-    private ImportService importService;
-    
-    private InputStream input;
-    
-    private final ImportOptions importOptions = new ImportOptions().setImportStrategy( ImportStrategy.NEW_AND_UPDATES );
-    
-    @Test
-    public void testDataElementImport()
-        throws Exception
-    {        
-        input = new ClassPathResource( "metadata/dataElements.csv" ).getInputStream();
-        
-        MetaData metaData = csvImportService.fromCsv( input, DataElement.class );
-        
-        assertEquals( 2, metaData.getDataElements().size() );
-        
-        ImportSummary summary = importService.importMetaData( null, metaData, importOptions );
-        
-        assertEquals( 2, summary.getImportCount().getImported() );
-        
-        Collection<DataElement> dataElements = dataElementService.getAllDataElements();
-        
-        assertEquals( 2, dataElements.size() );
-    }
-    
-    @Test
-    public void testOptionSetImport()
-        throws Exception
-    {
-        input = new ClassPathResource( "metadata/optionSets.csv" ).getInputStream();
-
-        MetaData metaData = csvImportService.fromCsv( input, OptionSet.class );
-        
-        assertEquals( 4, metaData.getOptionSets().size() );
-        assertEquals( 3, metaData.getOptionSets().get( 0 ).getOptions().size() );
-        assertEquals( 3, metaData.getOptionSets().get( 1 ).getOptions().size() );
-        assertEquals( 3, metaData.getOptionSets().get( 2 ).getOptions().size() );
-        assertEquals( 3, metaData.getOptionSets().get( 3 ).getOptions().size() );
-
-        ImportSummary summary = importService.importMetaData( null, metaData, importOptions );
-
-        assertEquals( 16, summary.getImportCount().getImported() );
-        
-        List<OptionSet> optionSets = new ArrayList<>( optionService.getAllOptionSets() );
-        
-        assertEquals( 4, optionSets.size() );
-        assertEquals( 3, optionSets.get( 0 ).getOptions().size() );
-        assertEquals( 3, optionSets.get( 1 ).getOptions().size() );
-        assertEquals( 3, optionSets.get( 2 ).getOptions().size() );
-        assertEquals( 3, optionSets.get( 3 ).getOptions().size() );
-    }
-}

=== added file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/CsvMetadataImportTest.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/CsvMetadataImportTest.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/CsvMetadataImportTest.java	2016-02-02 06:34:22 +0000
@@ -0,0 +1,117 @@
+package org.hisp.dhis.dxf2.metadata;
+
+/*
+ * Copyright (c) 2004-2016, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.hisp.dhis.DhisSpringTest;
+import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataelement.DataElementService;
+import org.hisp.dhis.dxf2.common.ImportOptions;
+import org.hisp.dhis.dxf2.csv.CsvImportService;
+import org.hisp.dhis.importexport.ImportStrategy;
+import org.hisp.dhis.option.OptionService;
+import org.hisp.dhis.option.OptionSet;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
+
+import static org.junit.Assert.*;
+
+/**
+ * @author Lars Helge Overland
+ */
+public class CsvMetadataImportTest
+    extends DhisSpringTest
+{
+    @Autowired
+    private DataElementService dataElementService;
+    
+    @Autowired
+    private OptionService optionService;
+    
+    @Autowired
+    private CsvImportService csvImportService;
+    
+    @Autowired
+    private ImportService importService;
+    
+    private InputStream input;
+    
+    private final ImportOptions importOptions = new ImportOptions().setImportStrategy( ImportStrategy.NEW_AND_UPDATES );
+    
+    @Test
+    public void testDataElementImport()
+        throws Exception
+    {        
+        input = new ClassPathResource( "metadata/dataElements.csv" ).getInputStream();
+        
+        Metadata metadata = csvImportService.fromCsv( input, DataElement.class );
+        
+        assertEquals( 2, metadata.getDataElements().size() );
+        
+        ImportSummary summary = importService.importMetaData( null, metadata, importOptions );
+        
+        assertEquals( 2, summary.getImportCount().getImported() );
+        
+        Collection<DataElement> dataElements = dataElementService.getAllDataElements();
+        
+        assertEquals( 2, dataElements.size() );
+    }
+    
+    @Test
+    public void testOptionSetImport()
+        throws Exception
+    {
+        input = new ClassPathResource( "metadata/optionSets.csv" ).getInputStream();
+
+        Metadata metadata = csvImportService.fromCsv( input, OptionSet.class );
+        
+        assertEquals( 4, metadata.getOptionSets().size() );
+        assertEquals( 3, metadata.getOptionSets().get( 0 ).getOptions().size() );
+        assertEquals( 3, metadata.getOptionSets().get( 1 ).getOptions().size() );
+        assertEquals( 3, metadata.getOptionSets().get( 2 ).getOptions().size() );
+        assertEquals( 3, metadata.getOptionSets().get( 3 ).getOptions().size() );
+
+        ImportSummary summary = importService.importMetaData( null, metadata, importOptions );
+
+        assertEquals( 16, summary.getImportCount().getImported() );
+        
+        List<OptionSet> optionSets = new ArrayList<>( optionService.getAllOptionSets() );
+        
+        assertEquals( 4, optionSets.size() );
+        assertEquals( 3, optionSets.get( 0 ).getOptions().size() );
+        assertEquals( 3, optionSets.get( 1 ).getOptions().size() );
+        assertEquals( 3, optionSets.get( 2 ).getOptions().size() );
+        assertEquals( 3, optionSets.get( 3 ).getOptions().size() );
+    }
+}

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/DefaultExportServiceTest.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/DefaultExportServiceTest.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/DefaultExportServiceTest.java	2016-02-02 06:34:22 +0000
@@ -128,9 +128,9 @@
     public void exportMetaDataTest() throws IOException, XPathExpressionException
     {
         Options options = new Options( new HashMap<>() );
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
-        String metaDataXml = JacksonUtils.toXmlAsString( metaData );
+        String metaDataXml = JacksonUtils.toXmlAsString( metadata );
 
         assertEquals( "1", xpathTest( "count(//d:organisationUnits)", metaDataXml ) );
         assertEquals( "2", xpathTest( "count(//d:organisationUnit)", metaDataXml ) );

=== modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/JacksonUtilsTest.java'
--- dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/JacksonUtilsTest.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-services/dhis-service-dxf2/src/test/java/org/hisp/dhis/dxf2/metadata/JacksonUtilsTest.java	2016-02-02 06:34:22 +0000
@@ -41,18 +41,18 @@
     @Test
     public void serializableTest() throws Exception
     {
-        JacksonUtils.toJsonAsString( new MetaData() );
-        JacksonUtils.toXmlAsString( new MetaData() );
-        JacksonUtils.toJsonWithViewAsString( new MetaData(), DetailedView.class );
-        JacksonUtils.toXmlWithViewAsString( new MetaData(), DetailedView.class );
-        JacksonUtils.toJsonWithViewAsString( new MetaData(), ExportView.class );
-        JacksonUtils.toXmlWithViewAsString( new MetaData(), ExportView.class );
+        JacksonUtils.toJsonAsString( new Metadata() );
+        JacksonUtils.toXmlAsString( new Metadata() );
+        JacksonUtils.toJsonWithViewAsString( new Metadata(), DetailedView.class );
+        JacksonUtils.toXmlWithViewAsString( new Metadata(), DetailedView.class );
+        JacksonUtils.toJsonWithViewAsString( new Metadata(), ExportView.class );
+        JacksonUtils.toXmlWithViewAsString( new Metadata(), ExportView.class );
     }
 
     @Test
     public void deserializableTest() throws Exception
     {
-        JacksonUtils.fromJson( "{}", MetaData.class );
-        JacksonUtils.fromXml( "<?xml version='1.0' encoding='UTF-8'?><metaData xmlns=\"http://dhis2.org/schema/dxf/2.0\"/>", MetaData.class );
+        JacksonUtils.fromJson( "{}", Metadata.class );
+        JacksonUtils.fromXml( "<?xml version='1.0' encoding='UTF-8'?><metaData xmlns=\"http://dhis2.org/schema/dxf/2.0\"/>", Metadata.class );
     }
 }

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java	2016-02-01 07:36:06 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/AbstractCrudController.java	2016-02-02 06:34:22 +0000
@@ -79,7 +79,7 @@
 import org.hisp.dhis.webapi.service.LinkService;
 import org.hisp.dhis.webapi.service.WebMessageService;
 import org.hisp.dhis.webapi.utils.WebMessageUtils;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
@@ -166,7 +166,7 @@
         List<Order> orders = orderParams.getOrders( getSchema() );
 
         WebOptions options = new WebOptions( rpParameters );
-        WebMetaData metaData = new WebMetaData();
+        WebMetadata metadata = new WebMetadata();
 
         if ( !aclService.canRead( currentUserService.getCurrentUser(), getEntityClass() ) )
         {
@@ -178,9 +178,9 @@
             fields.addAll( Preset.defaultPreset().getFields() );
         }
 
-        List<T> entities = getEntityList( metaData, options, filters, orders );
+        List<T> entities = getEntityList( metadata, options, filters, orders );
         translate( entities, translateParams );
-        Pager pager = metaData.getPager();
+        Pager pager = metadata.getPager();
 
         if ( options.hasPaging() && pager == null )
         {
@@ -860,7 +860,7 @@
     //--------------------------------------------------------------------------
 
     @SuppressWarnings( "unchecked" )
-    protected List<T> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
+    protected List<T> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
     {
         List<T> entityList;
         Query query = queryService.getQueryFromUrl( getEntityClass(), filters, orders );

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DashboardItemController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DashboardItemController.java	2016-01-26 08:55:27 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DashboardItemController.java	2016-02-02 06:34:22 +0000
@@ -39,7 +39,7 @@
 import org.hisp.dhis.query.Order;
 import org.hisp.dhis.schema.descriptors.DashboardItemSchemaDescriptor;
 import org.hisp.dhis.webapi.utils.WebMessageUtils;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -63,7 +63,7 @@
     private DashboardService dashboardService;
 
     @Override
-    protected List<DashboardItem> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders )
+    protected List<DashboardItem> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders )
     {
         List<DashboardItem> entityList;
 
@@ -72,7 +72,7 @@
             int count = manager.getCount( getEntityClass() );
 
             Pager pager = new Pager( options.getPage(), count, options.getPageSize() );
-            metaData.setPager( pager );
+            metadata.setPager( pager );
 
             entityList = Lists.newArrayList( manager.getBetween( getEntityClass(), pager.getOffset(), pager.getPageSize() ) );
         }

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DataSetController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DataSetController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DataSetController.java	2016-02-02 06:34:22 +0000
@@ -39,7 +39,7 @@
 import org.hisp.dhis.dxf2.common.JacksonUtils;
 import org.hisp.dhis.dxf2.datavalueset.DataValueSetService;
 import org.hisp.dhis.dxf2.metadata.ExportService;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.dxf2.webmessage.WebMessageException;
 import org.hisp.dhis.node.types.RootNode;
 import org.hisp.dhis.organisationunit.OrganisationUnit;
@@ -118,9 +118,9 @@
     {
         WebOptions options = filterMetadataOptions();
 
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
-        InputStream input = new ByteArrayInputStream( JacksonUtils.toXmlWithViewAsString( metaData, ExportView.class ).getBytes( "UTF-8" ) );
+        InputStream input = new ByteArrayInputStream( JacksonUtils.toXmlWithViewAsString( metadata, ExportView.class ).getBytes( "UTF-8" ) );
 
         TransformerFactory tf = TransformerFactory.newInstance();
         tf.setURIResolver( new ClassPathUriResolver() );

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DimensionController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DimensionController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/DimensionController.java	2016-02-02 06:34:22 +0000
@@ -46,7 +46,7 @@
 import org.hisp.dhis.query.Query;
 import org.hisp.dhis.query.QueryParserException;
 import org.hisp.dhis.webapi.utils.WebMessageUtils;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -89,7 +89,7 @@
 
     @Override
     @SuppressWarnings( "unchecked" )
-    protected List<DimensionalObject> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
+    protected List<DimensionalObject> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
     {
         List<DimensionalObject> dimensionalObjects;
         Query query = queryService.getQueryFromUrl( DimensionalObject.class, filters, orders );
@@ -160,7 +160,7 @@
         @RequestParam( value = "links", defaultValue = "true", required = false ) Boolean links,
         Model model, HttpServletResponse response ) throws WebMessageException
     {
-        WebMetaData metaData = new WebMetaData();
+        WebMetadata metadata = new WebMetadata();
 
         DataSet dataSet = identifiableObjectManager.get( DataSet.class, uid );
 
@@ -182,14 +182,14 @@
 
         for ( DimensionalObject dim : dimensions )
         {
-            metaData.getDimensions().add( dimensionService.getDimensionalObjectCopy( dim.getUid(), true ) );
+            metadata.getDimensions().add( dimensionService.getDimensionalObjectCopy( dim.getUid(), true ) );
         }
 
-        model.addAttribute( "model", metaData );
+        model.addAttribute( "model", metadata );
 
         if ( links )
         {
-            linkService.generateLinks( metaData, false );
+            linkService.generateLinks( metadata, false );
         }
 
         return "dimensions";

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/MaintenanceController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/MaintenanceController.java	2016-02-01 07:36:06 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/MaintenanceController.java	2016-02-02 06:34:22 +0000
@@ -34,7 +34,7 @@
 import org.hisp.dhis.dataelement.DataElementCategoryService;
 import org.hisp.dhis.dxf2.common.Options;
 import org.hisp.dhis.dxf2.metadata.ExportService;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.render.RenderService;
 import org.hisp.dhis.dxf2.schema.SchemaValidator;
 import org.hisp.dhis.dxf2.webmessage.WebMessage;
@@ -183,8 +183,8 @@
         Options options = new Options();
         options.setAssumeTrue( true );
 
-        MetaData metaData = exportService.getMetaData( options );
-        Schema schema = schemaService.getDynamicSchema( MetaData.class );
+        Metadata metadata = exportService.getMetaData( options );
+        Schema schema = schemaService.getDynamicSchema( Metadata.class );
 
         Map<String, Map<String, List<ValidationViolation>>> output = new HashMap<>();
 
@@ -197,7 +197,7 @@
 
             output.put( property.getName(), new HashMap<>() );
 
-            Collection<?> collection = (Collection<?>) property.getGetterMethod().invoke( metaData );
+            Collection<?> collection = (Collection<?>) property.getGetterMethod().invoke( metadata );
 
             for ( Object object : collection )
             {

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/MessageConversationController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/MessageConversationController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/MessageConversationController.java	2016-02-02 06:34:22 +0000
@@ -50,7 +50,7 @@
 import org.hisp.dhis.webapi.utils.ContextUtils;
 import org.hisp.dhis.webapi.utils.WebMessageUtils;
 import org.hisp.dhis.webapi.webdomain.MessageConversation;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
@@ -126,7 +126,7 @@
     }
 
     @Override
-    protected List<org.hisp.dhis.message.MessageConversation> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders )
+    protected List<org.hisp.dhis.message.MessageConversation> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders )
     {
         List<org.hisp.dhis.message.MessageConversation> entityList;
 
@@ -139,7 +139,7 @@
             int count = messageService.getMessageConversationCount();
 
             Pager pager = new Pager( options.getPage(), count, options.getPageSize() );
-            metaData.setPager( pager );
+            metadata.setPager( pager );
 
             entityList = new ArrayList<>( messageService.getMessageConversations( pager.getOffset(), pager.getPageSize() ) );
         }

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/dataelement/DataElementGroupController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/dataelement/DataElementGroupController.java	2016-01-08 14:23:25 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/dataelement/DataElementGroupController.java	2016-02-02 06:34:22 +0000
@@ -40,7 +40,7 @@
 import org.hisp.dhis.schema.descriptors.DataElementGroupSchemaDescriptor;
 import org.hisp.dhis.webapi.controller.AbstractCrudController;
 import org.hisp.dhis.webapi.utils.WebMessageUtils;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -83,26 +83,26 @@
             throw new WebMessageException( WebMessageUtils.notFound( "DataElementGroup not found for uid: " + uid ) );
         }
 
-        WebMetaData metaData = new WebMetaData();
+        WebMetadata metadata = new WebMetadata();
         List<DataElementOperand> dataElementOperands = Lists.newArrayList( dataElementCategoryService.getOperands( dataElementGroups.get( 0 ).getMembers() ) );
 
         Collections.sort( dataElementOperands, IdentifiableObjectNameComparator.INSTANCE );
 
         Collections.sort( dataElementOperands, IdentifiableObjectNameComparator.INSTANCE );
 
-        metaData.setDataElementOperands( dataElementOperands );
+        metadata.setDataElementOperands( dataElementOperands );
 
         if ( options.hasPaging() )
         {
             Pager pager = new Pager( options.getPage(), dataElementOperands.size(), options.getPageSize() );
-            metaData.setPager( pager );
+            metadata.setPager( pager );
             dataElementOperands = PagerUtils.pageCollection( dataElementOperands, pager );
         }
 
-        metaData.setDataElementOperands( dataElementOperands );
-        linkService.generateLinks( metaData, false );
+        metadata.setDataElementOperands( dataElementOperands );
+        linkService.generateLinks( metadata, false );
 
-        model.addAttribute( "model", metaData );
+        model.addAttribute( "model", metadata );
         model.addAttribute( "viewClass", options.getViewClass( "basic" ) );
 
         return StringUtils.uncapitalize( getEntitySimpleName() );
@@ -125,7 +125,7 @@
             throw new WebMessageException( WebMessageUtils.notFound( "DataElementGroup not found for uid: " + uid ) );
         }
 
-        WebMetaData metaData = new WebMetaData();
+        WebMetadata metadata = new WebMetadata();
         List<DataElementOperand> dataElementOperands = Lists.newArrayList();
 
         for ( DataElementOperand dataElementOperand : dataElementCategoryService.getOperands( dataElementGroups.get( 0 ).getMembers() ) )
@@ -136,19 +136,19 @@
             }
         }
 
-        metaData.setDataElementOperands( dataElementOperands );
+        metadata.setDataElementOperands( dataElementOperands );
 
         if ( options.hasPaging() )
         {
             Pager pager = new Pager( options.getPage(), dataElementOperands.size(), options.getPageSize() );
-            metaData.setPager( pager );
+            metadata.setPager( pager );
             dataElementOperands = PagerUtils.pageCollection( dataElementOperands, pager );
         }
 
-        metaData.setDataElementOperands( dataElementOperands );
-        linkService.generateLinks( metaData, false );
+        metadata.setDataElementOperands( dataElementOperands );
+        linkService.generateLinks( metadata, false );
 
-        model.addAttribute( "model", metaData );
+        model.addAttribute( "model", metadata );
         model.addAttribute( "viewClass", options.getViewClass( "basic" ) );
 
         return StringUtils.uncapitalize( getEntitySimpleName() );

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/dataelement/DataElementOperandController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/dataelement/DataElementOperandController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/dataelement/DataElementOperandController.java	2016-02-02 06:34:22 +0000
@@ -39,7 +39,7 @@
 import org.hisp.dhis.query.QueryParserException;
 import org.hisp.dhis.schema.descriptors.DataElementOperandSchemaDescriptor;
 import org.hisp.dhis.webapi.controller.AbstractCrudController;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -61,7 +61,7 @@
 
     @Override
     @SuppressWarnings( "unchecked" )
-    protected List<DataElementOperand> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
+    protected List<DataElementOperand> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
     {
         List<DataElementOperand> dataElementOperands = new ArrayList<>();
 

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramController.java	2016-02-02 06:34:22 +0000
@@ -39,7 +39,7 @@
 import org.hisp.dhis.query.QueryParserException;
 import org.hisp.dhis.schema.descriptors.ProgramSchemaDescriptor;
 import org.hisp.dhis.webapi.controller.AbstractCrudController;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -80,7 +80,7 @@
 
     @Override
     @SuppressWarnings( "unchecked" )
-    protected List<Program> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
+    protected List<Program> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
     {
         Boolean userFilter = Boolean.parseBoolean( options.getOptions().get( "userFilter" ) );
 
@@ -101,7 +101,7 @@
         {
             Set<Program> programs = programService.getCurrentUserPrograms();
             entityList.retainAll( programs );
-            metaData.setPager( null );
+            metadata.setPager( null );
         }
 
         return entityList;

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramDataElementController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramDataElementController.java	2016-01-08 10:14:46 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/ProgramDataElementController.java	2016-02-02 06:34:22 +0000
@@ -34,7 +34,7 @@
 import org.hisp.dhis.query.Query;
 import org.hisp.dhis.query.QueryParserException;
 import org.hisp.dhis.webapi.controller.AbstractCrudController;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -55,7 +55,7 @@
 
     @Override
     @SuppressWarnings( "unchecked" )
-    protected List<ProgramDataElement> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
+    protected List<ProgramDataElement> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
     {
         List<ProgramDataElement> programDataElements;
         Query query = queryService.getQueryFromUrl( ProgramDataElement.class, filters, orders );

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/MapViewController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/MapViewController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/mapping/MapViewController.java	2016-02-02 06:34:22 +0000
@@ -41,7 +41,7 @@
 import org.hisp.dhis.webapi.utils.ContextUtils;
 import org.hisp.dhis.common.cache.CacheStrategy;
 import org.hisp.dhis.webapi.utils.WebMessageUtils;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -118,7 +118,7 @@
     //--------------------------------------------------------------------------
 
     @Override
-    protected List<MapView> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders )
+    protected List<MapView> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders )
     {
         List<MapView> entityList;
 

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/metadata/FilteredMetaDataController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/metadata/FilteredMetaDataController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/metadata/FilteredMetaDataController.java	2016-02-02 06:34:22 +0000
@@ -37,7 +37,7 @@
 import org.hisp.dhis.dxf2.common.JacksonUtils;
 import org.hisp.dhis.dxf2.metadata.ExportService;
 import org.hisp.dhis.dxf2.metadata.ImportService;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.dxf2.metadata.tasks.ImportMetaDataTask;
 import org.hisp.dhis.importexport.ImportStrategy;
 import org.hisp.dhis.scheduling.TaskCategory;
@@ -119,9 +119,9 @@
     public String detailedExport( @RequestParam Map<String, String> parameters, Model model )
     {
         WebOptions options = new WebOptions( parameters );
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
-        model.addAttribute( "model", metaData );
+        model.addAttribute( "model", metadata );
         model.addAttribute( "viewClass", "export" );
 
         return "export";
@@ -132,10 +132,10 @@
     public void exportXml( @RequestParam String exportJsonValue, HttpServletResponse response ) throws IOException
     {
         FilterOptions filterOptions = new FilterOptions( JSONObject.fromObject( exportJsonValue ) );
-        MetaData metaData = exportService.getFilteredMetaData( filterOptions );
+        Metadata metadata = exportService.getFilteredMetaData( filterOptions );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_XML, CacheStrategy.NO_CACHE, "metaData.xml", true );
-        JacksonUtils.toXmlWithView( response.getOutputStream(), metaData, ExportView.class );
+        JacksonUtils.toXmlWithView( response.getOutputStream(), metadata, ExportView.class );
     }
 
     @RequestMapping( method = RequestMethod.POST, value = FilteredMetaDataController.RESOURCE_PATH + ".json", produces = "*/*" )
@@ -143,10 +143,10 @@
     public void exportJson( @RequestParam String exportJsonValue, HttpServletResponse response ) throws IOException
     {
         FilterOptions filterOptions = new FilterOptions( JSONObject.fromObject( exportJsonValue ) );
-        MetaData metaData = exportService.getFilteredMetaData( filterOptions );
+        Metadata metadata = exportService.getFilteredMetaData( filterOptions );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_JSON, CacheStrategy.NO_CACHE, "metaData.json", true );
-        JacksonUtils.toJsonWithView( response.getOutputStream(), metaData, ExportView.class );
+        JacksonUtils.toJsonWithView( response.getOutputStream(), metadata, ExportView.class );
     }
 
     @RequestMapping( method = RequestMethod.POST, value = { FilteredMetaDataController.RESOURCE_PATH + ".xml.zip" }, produces = "*/*" )
@@ -154,7 +154,7 @@
     public void exportZippedXML( @RequestParam String exportJsonValue, HttpServletResponse response ) throws IOException
     {
         FilterOptions filterOptions = new FilterOptions( JSONObject.fromObject( exportJsonValue ) );
-        MetaData metaData = exportService.getFilteredMetaData( filterOptions );
+        Metadata metadata = exportService.getFilteredMetaData( filterOptions );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_ZIP, CacheStrategy.NO_CACHE, "metaData.xml.zip", true );
         response.addHeader( ContextUtils.HEADER_CONTENT_TRANSFER_ENCODING, "binary" );
@@ -162,7 +162,7 @@
         ZipOutputStream zip = new ZipOutputStream( response.getOutputStream() );
         zip.putNextEntry( new ZipEntry( "metaData.xml" ) );
 
-        JacksonUtils.toXmlWithView( zip, metaData, ExportView.class );
+        JacksonUtils.toXmlWithView( zip, metadata, ExportView.class );
     }
 
     @RequestMapping( method = RequestMethod.POST, value = { FilteredMetaDataController.RESOURCE_PATH + ".json.zip" }, produces = "*/*" )
@@ -170,7 +170,7 @@
     public void exportZippedJSON( @RequestParam String exportJsonValue, HttpServletResponse response ) throws IOException
     {
         FilterOptions filterOptions = new FilterOptions( JSONObject.fromObject( exportJsonValue ) );
-        MetaData metaData = exportService.getFilteredMetaData( filterOptions );
+        Metadata metadata = exportService.getFilteredMetaData( filterOptions );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_ZIP, CacheStrategy.NO_CACHE, "metaData.json.zip", true );
         response.addHeader( ContextUtils.HEADER_CONTENT_TRANSFER_ENCODING, "binary" );
@@ -178,7 +178,7 @@
         ZipOutputStream zip = new ZipOutputStream( response.getOutputStream() );
         zip.putNextEntry( new ZipEntry( "metaData.json" ) );
 
-        JacksonUtils.toJsonWithView( zip, metaData, ExportView.class );
+        JacksonUtils.toJsonWithView( zip, metadata, ExportView.class );
     }
 
     @RequestMapping( method = RequestMethod.POST, value = { FilteredMetaDataController.RESOURCE_PATH + ".xml.gz" }, produces = "*/*" )
@@ -186,13 +186,13 @@
     public void exportGZippedXML( @RequestParam String exportJsonValue, HttpServletResponse response ) throws IOException
     {
         FilterOptions filterOptions = new FilterOptions( JSONObject.fromObject( exportJsonValue ) );
-        MetaData metaData = exportService.getFilteredMetaData( filterOptions );
+        Metadata metadata = exportService.getFilteredMetaData( filterOptions );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_GZIP, CacheStrategy.NO_CACHE, "metaData.xml.gz", true );
         response.addHeader( ContextUtils.HEADER_CONTENT_TRANSFER_ENCODING, "binary" );
 
         GZIPOutputStream gzip = new GZIPOutputStream( response.getOutputStream() );
-        JacksonUtils.toXmlWithView( gzip, metaData, ExportView.class );
+        JacksonUtils.toXmlWithView( gzip, metadata, ExportView.class );
     }
 
     @RequestMapping( method = RequestMethod.POST, value = { FilteredMetaDataController.RESOURCE_PATH + ".json.gz" }, produces = "*/*" )
@@ -200,13 +200,13 @@
     public void exportGZippedJSON( @RequestParam String exportJsonValue, HttpServletResponse response ) throws IOException
     {
         FilterOptions filterOptions = new FilterOptions( JSONObject.fromObject( exportJsonValue ) );
-        MetaData metaData = exportService.getFilteredMetaData( filterOptions );
+        Metadata metadata = exportService.getFilteredMetaData( filterOptions );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_GZIP, CacheStrategy.NO_CACHE, "metaData.json.gz", true );
         response.addHeader( ContextUtils.HEADER_CONTENT_TRANSFER_ENCODING, "binary" );
 
         GZIPOutputStream gzip = new GZIPOutputStream( response.getOutputStream() );
-        JacksonUtils.toJsonWithView( gzip, metaData, ExportView.class );
+        JacksonUtils.toJsonWithView( gzip, metadata, ExportView.class );
     }
 
     //--------------------------------------------------------------------------
@@ -257,12 +257,12 @@
         TaskId taskId = new TaskId( TaskCategory.METADATA_IMPORT, currentUserService.getCurrentUser() );
         User user = currentUserService.getCurrentUser();
 
-        MetaData metaData = new ObjectMapper().readValue( json.getString( "metaData" ), MetaData.class );
+        Metadata metadata = new ObjectMapper().readValue( json.getString( "metaData" ), Metadata.class );
 
         ImportOptions importOptions = new ImportOptions();
         importOptions.setStrategy( strategy );
         importOptions.setDryRun( dryRun );
 
-        scheduler.executeTask( new ImportMetaDataTask( user.getUid(), importService, importOptions, taskId, metaData ) );
+        scheduler.executeTask( new ImportMetaDataTask( user.getUid(), importService, importOptions, taskId, metadata ) );
     }
 }

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/metadata/MetaDataController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/metadata/MetaDataController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/metadata/MetaDataController.java	2016-02-02 06:34:22 +0000
@@ -33,7 +33,7 @@
 import org.hisp.dhis.dxf2.metadata.ExportService;
 import org.hisp.dhis.dxf2.metadata.ImportService;
 import org.hisp.dhis.dxf2.metadata.ImportSummary;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.dxf2.metadata.tasks.ImportMetaDataTask;
 import org.hisp.dhis.importexport.ImportStrategy;
 import org.hisp.dhis.scheduling.TaskCategory;
@@ -93,9 +93,9 @@
     public String export( @RequestParam Map<String, String> parameters, Model model )
     {
         WebOptions options = new WebOptions( parameters );
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
-        model.addAttribute( "model", metaData );
+        model.addAttribute( "model", metadata );
         model.addAttribute( "viewClass", options.getViewClass( "export" ) );
 
         return "export";
@@ -105,24 +105,24 @@
     public void exportXml( @RequestParam Map<String, String> parameters, HttpServletResponse response ) throws IOException
     {
         WebOptions options = new WebOptions( parameters );
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_XML, CacheStrategy.NO_CACHE, "metadata.xml", true );
 
         Class<?> viewClass = JacksonUtils.getViewClass( options.getViewClass( "export" ) );
-        JacksonUtils.toXmlWithView( response.getOutputStream(), metaData, viewClass );
+        JacksonUtils.toXmlWithView( response.getOutputStream(), metadata, viewClass );
     }
 
     @RequestMapping( value = MetaDataController.RESOURCE_PATH + ".json", produces = "*/*" )
     public void exportJson( @RequestParam Map<String, String> parameters, HttpServletResponse response ) throws IOException
     {
         WebOptions options = new WebOptions( parameters );
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_JSON, CacheStrategy.NO_CACHE, "metadata.json", true );
 
         Class<?> viewClass = JacksonUtils.getViewClass( options.getViewClass( "export" ) );
-        JacksonUtils.toJsonWithView( response.getOutputStream(), metaData, viewClass );
+        JacksonUtils.toJsonWithView( response.getOutputStream(), metadata, viewClass );
     }
 
     @RequestMapping( value = { MetaDataController.RESOURCE_PATH + ".zip" }, produces = "*/*" )
@@ -144,7 +144,7 @@
     public void exportZippedXML( @RequestParam Map<String, String> parameters, HttpServletResponse response ) throws IOException
     {
         WebOptions options = new WebOptions( parameters );
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_ZIP, CacheStrategy.NO_CACHE, "metadata.xml.zip", true );
         response.addHeader( ContextUtils.HEADER_CONTENT_TRANSFER_ENCODING, "binary" );
@@ -153,14 +153,14 @@
         zip.putNextEntry( new ZipEntry( "metadata.xml" ) );
 
         Class<?> viewClass = JacksonUtils.getViewClass( options.getViewClass( "export" ) );
-        JacksonUtils.toXmlWithView( zip, metaData, viewClass );
+        JacksonUtils.toXmlWithView( zip, metadata, viewClass );
     }
 
     @RequestMapping( value = { MetaDataController.RESOURCE_PATH + ".json.zip" }, produces = "*/*" )
     public void exportZippedJSON( @RequestParam Map<String, String> parameters, HttpServletResponse response ) throws IOException
     {
         WebOptions options = new WebOptions( parameters );
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_ZIP, CacheStrategy.NO_CACHE, "metadata.json.zip", true );
         response.addHeader( ContextUtils.HEADER_CONTENT_TRANSFER_ENCODING, "binary" );
@@ -169,7 +169,7 @@
         zip.putNextEntry( new ZipEntry( "metadata.json" ) );
 
         Class<?> viewClass = JacksonUtils.getViewClass( options.getViewClass( "export" ) );
-        JacksonUtils.toJsonWithView( zip, metaData, viewClass );
+        JacksonUtils.toJsonWithView( zip, metadata, viewClass );
     }
 
     @RequestMapping( value = { MetaDataController.RESOURCE_PATH + ".gz" }, produces = "*/*" )
@@ -191,7 +191,7 @@
     public void exportGZippedXML( @RequestParam Map<String, String> parameters, HttpServletResponse response ) throws IOException
     {
         WebOptions options = new WebOptions( parameters );
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_GZIP, CacheStrategy.NO_CACHE, "metadata.xml.gz", true );
         response.addHeader( ContextUtils.HEADER_CONTENT_TRANSFER_ENCODING, "binary" );
@@ -199,14 +199,14 @@
         GZIPOutputStream gzip = new GZIPOutputStream( response.getOutputStream() );
 
         Class<?> viewClass = JacksonUtils.getViewClass( options.getViewClass( "export" ) );
-        JacksonUtils.toXmlWithView( gzip, metaData, viewClass );
+        JacksonUtils.toXmlWithView( gzip, metadata, viewClass );
     }
 
     @RequestMapping( value = { MetaDataController.RESOURCE_PATH + ".json.gz" }, produces = "*/*" )
     public void exportGZippedJSON( @RequestParam Map<String, String> parameters, HttpServletResponse response ) throws IOException
     {
         WebOptions options = new WebOptions( parameters );
-        MetaData metaData = exportService.getMetaData( options );
+        Metadata metadata = exportService.getMetaData( options );
 
         contextUtils.configureResponse( response, ContextUtils.CONTENT_TYPE_GZIP, CacheStrategy.NO_CACHE, "metadata.json.gz", true );
         response.addHeader( ContextUtils.HEADER_CONTENT_TRANSFER_ENCODING, "binary" );
@@ -214,7 +214,7 @@
         GZIPOutputStream gzip = new GZIPOutputStream( response.getOutputStream() );
 
         Class<?> viewClass = JacksonUtils.getViewClass( options.getViewClass( "export" ) );
-        JacksonUtils.toJsonWithView( gzip, metaData, viewClass );
+        JacksonUtils.toJsonWithView( gzip, metadata, viewClass );
     }
 
     //--------------------------------------------------------------------------
@@ -224,15 +224,15 @@
     @RequestMapping( value = MetaDataController.RESOURCE_PATH, method = RequestMethod.POST, consumes = { "application/xml", "text/*" } )
     public void importXml( ImportOptions importOptions, HttpServletResponse response, HttpServletRequest request ) throws IOException
     {
-        MetaData metaData = JacksonUtils.fromXml( request.getInputStream(), MetaData.class );
+        Metadata metadata = JacksonUtils.fromXml( request.getInputStream(), Metadata.class );
 
         if ( importOptions.isAsync() )
         {
-            startAsyncImport( importOptions, response, request, metaData );
+            startAsyncImport( importOptions, response, request, metadata );
         }
         else
         {
-            startSyncImportXml( importOptions, response, metaData );
+            startSyncImportXml( importOptions, response, metadata );
         }
     }
 
@@ -246,15 +246,15 @@
     @RequestMapping( value = MetaDataController.RESOURCE_PATH, method = RequestMethod.POST, consumes = "application/json" )
     public void importJson( ImportOptions importOptions, HttpServletResponse response, HttpServletRequest request ) throws IOException
     {
-        MetaData metaData = JacksonUtils.fromJson( request.getInputStream(), MetaData.class );
+        Metadata metadata = JacksonUtils.fromJson( request.getInputStream(), Metadata.class );
 
         if ( importOptions.isAsync() )
         {
-            startAsyncImport( importOptions, response, request, metaData );
+            startAsyncImport( importOptions, response, request, metadata );
         }
         else
         {
-            startSyncImportJson( importOptions, response, metaData );
+            startSyncImportJson( importOptions, response, metadata );
         }
     }
 
@@ -271,15 +271,15 @@
         ZipInputStream zip = new ZipInputStream( request.getInputStream() );
         zip.getNextEntry();
 
-        MetaData metaData = JacksonUtils.fromXml( zip, MetaData.class );
+        Metadata metadata = JacksonUtils.fromXml( zip, Metadata.class );
 
         if ( importOptions.isAsync() )
         {
-            startAsyncImport( importOptions, response, request, metaData );
+            startAsyncImport( importOptions, response, request, metadata );
         }
         else
         {
-            startSyncImportXml( importOptions, response, metaData );
+            startSyncImportXml( importOptions, response, metadata );
         }
     }
 
@@ -296,15 +296,15 @@
         ZipInputStream zip = new ZipInputStream( request.getInputStream() );
         zip.getNextEntry();
 
-        MetaData metaData = JacksonUtils.fromJson( zip, MetaData.class );
+        Metadata metadata = JacksonUtils.fromJson( zip, Metadata.class );
 
         if ( importOptions.isAsync() )
         {
-            startAsyncImport( importOptions, response, request, metaData );
+            startAsyncImport( importOptions, response, request, metadata );
         }
         else
         {
-            startSyncImportJson( importOptions, response, metaData );
+            startSyncImportJson( importOptions, response, metadata );
         }
     }
 
@@ -319,15 +319,15 @@
     public void importGZippedXml( ImportOptions importOptions, HttpServletResponse response, HttpServletRequest request ) throws IOException
     {
         GZIPInputStream gzip = new GZIPInputStream( request.getInputStream() );
-        MetaData metaData = JacksonUtils.fromXml( gzip, MetaData.class );
+        Metadata metadata = JacksonUtils.fromXml( gzip, Metadata.class );
 
         if ( importOptions.isAsync() )
         {
-            startAsyncImport( importOptions, response, request, metaData );
+            startAsyncImport( importOptions, response, request, metadata );
         }
         else
         {
-            startSyncImportXml( importOptions, response, metaData );
+            startSyncImportXml( importOptions, response, metadata );
         }
     }
 
@@ -342,15 +342,15 @@
     public void importGZippedJson( ImportOptions importOptions, HttpServletResponse response, HttpServletRequest request ) throws IOException
     {
         GZIPInputStream gzip = new GZIPInputStream( request.getInputStream() );
-        MetaData metaData = JacksonUtils.fromJson( gzip, MetaData.class );
+        Metadata metadata = JacksonUtils.fromJson( gzip, Metadata.class );
 
         if ( importOptions.isAsync() )
         {
-            startAsyncImport( importOptions, response, request, metaData );
+            startAsyncImport( importOptions, response, request, metadata );
         }
         else
         {
-            startSyncImportJson( importOptions, response, metaData );
+            startSyncImportJson( importOptions, response, metadata );
         }
     }
 
@@ -365,33 +365,33 @@
     // Helpers
     //--------------------------------------------------------------------------
 
-    private void startSyncImportXml( ImportOptions importOptions, HttpServletResponse response, MetaData metaData ) throws IOException
+    private void startSyncImportXml( ImportOptions importOptions, HttpServletResponse response, Metadata metadata ) throws IOException
     {
         String userUid = currentUserService.getCurrentUser().getUid();
 
-        ImportSummary importSummary = importService.importMetaData( userUid, metaData, importOptions, null );
+        ImportSummary importSummary = importService.importMetaData( userUid, metadata, importOptions, null );
         response.setStatus( HttpServletResponse.SC_OK );
         response.setContentType( ContextUtils.CONTENT_TYPE_XML );
         JacksonUtils.toXml( response.getOutputStream(), importSummary );
     }
 
-    private void startSyncImportJson( ImportOptions importOptions, HttpServletResponse response, MetaData metaData ) throws IOException
+    private void startSyncImportJson( ImportOptions importOptions, HttpServletResponse response, Metadata metadata ) throws IOException
     {
         String userUid = currentUserService.getCurrentUser().getUid();
 
-        ImportSummary importSummary = importService.importMetaData( userUid, metaData, importOptions, null );
+        ImportSummary importSummary = importService.importMetaData( userUid, metadata, importOptions, null );
         response.setStatus( HttpServletResponse.SC_OK );
         response.setContentType( ContextUtils.CONTENT_TYPE_JSON );
         JacksonUtils.toJson( response.getOutputStream(), importSummary );
     }
 
-    private void startAsyncImport( ImportOptions importOptions, HttpServletResponse response, HttpServletRequest request, MetaData metaData )
+    private void startAsyncImport( ImportOptions importOptions, HttpServletResponse response, HttpServletRequest request, Metadata metadata )
     {
         String userUid = currentUserService.getCurrentUser().getUid();
 
         TaskId taskId = new TaskId( TaskCategory.METADATA_IMPORT, currentUserService.getCurrentUser() );
 
-        scheduler.executeTask( new ImportMetaDataTask( userUid, importService, importOptions, taskId, metaData ) );
+        scheduler.executeTask( new ImportMetaDataTask( userUid, importService, importOptions, taskId, metadata ) );
 
         response.setHeader( "Location", ContextUtils.getRootPath( request ) + "/system/tasks/" + TaskCategory.METADATA_IMPORT );
         response.setStatus( HttpServletResponse.SC_ACCEPTED );

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/organisationunit/OrganisationUnitController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/organisationunit/OrganisationUnitController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/organisationunit/OrganisationUnitController.java	2016-02-02 06:34:22 +0000
@@ -45,7 +45,7 @@
 import org.hisp.dhis.util.ObjectUtils;
 import org.hisp.dhis.version.VersionService;
 import org.hisp.dhis.webapi.controller.AbstractCrudController;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -80,7 +80,7 @@
 
     @Override
     @SuppressWarnings( "unchecked" )
-    protected List<OrganisationUnit> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
+    protected List<OrganisationUnit> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
     {
         List<OrganisationUnit> entityList;
         Query query = queryService.getQueryFromUrl( getEntityClass(), filters, orders );
@@ -216,11 +216,11 @@
             }
         }
 
-        WebMetaData metaData = new WebMetaData();
-        metaData.setOrganisationUnits( organisationUnits );
+        WebMetadata metadata = new WebMetadata();
+        metadata.setOrganisationUnits( organisationUnits );
         WebOptions options = new WebOptions( parameters );
 
-        model.addAttribute( "model", metaData );
+        model.addAttribute( "model", metadata );
         model.addAttribute( "viewClass", options.getViewClass( "basic" ) );
 
         return organisationUnits;

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserController.java	2016-01-06 16:48:58 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserController.java	2016-02-02 06:34:22 +0000
@@ -61,7 +61,7 @@
 import org.hisp.dhis.webapi.controller.AbstractCrudController;
 import org.hisp.dhis.webapi.utils.ContextUtils;
 import org.hisp.dhis.webapi.utils.WebMessageUtils;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -112,7 +112,7 @@
     // -------------------------------------------------------------------------
 
     @Override
-    protected List<User> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders )
+    protected List<User> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders )
     {
         UserQueryParams params = new UserQueryParams();
         params.setQuery( options.get( "query" ) );
@@ -143,7 +143,7 @@
         if ( options.hasPaging() && filters.isEmpty() )
         {
             Pager pager = new Pager( options.getPage(), count, options.getPageSize() );
-            metaData.setPager( pager );
+            metadata.setPager( pager );
             params.setFirst( pager.getOffset() );
             params.setMax( pager.getPageSize() );
         }

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserRoleController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserRoleController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/user/UserRoleController.java	2016-02-02 06:34:22 +0000
@@ -39,7 +39,7 @@
 import org.hisp.dhis.user.UserService;
 import org.hisp.dhis.webapi.controller.AbstractCrudController;
 import org.hisp.dhis.webapi.utils.WebMessageUtils;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -62,9 +62,9 @@
     private UserService userService;
 
     @Override
-    protected List<UserAuthorityGroup> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
+    protected List<UserAuthorityGroup> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
     {
-        List<UserAuthorityGroup> entityList = super.getEntityList( metaData, options, filters, orders );
+        List<UserAuthorityGroup> entityList = super.getEntityList( metadata, options, filters, orders );
 
         if ( options.getOptions().containsKey( "canIssue" ) && Boolean.parseBoolean( options.getOptions().get( "canIssue" ) ) )
         {

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/validation/ValidationRuleController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/validation/ValidationRuleController.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/validation/ValidationRuleController.java	2016-02-02 06:34:22 +0000
@@ -37,7 +37,7 @@
 import org.hisp.dhis.validation.ValidationRule;
 import org.hisp.dhis.validation.ValidationRuleService;
 import org.hisp.dhis.webapi.controller.AbstractCrudController;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.hisp.dhis.webapi.webdomain.WebOptions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -60,7 +60,7 @@
     private ValidationRuleService validationRuleService;
 
     @Override
-    protected List<ValidationRule> getEntityList( WebMetaData metaData, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
+    protected List<ValidationRule> getEntityList( WebMetadata metadata, WebOptions options, List<String> filters, List<Order> orders ) throws QueryParserException
     {
         if ( options.contains( "dataSet" ) )
         {
@@ -74,6 +74,6 @@
             return Lists.newArrayList( validationRuleService.getValidationRulesByDataElements( ds.getDataElements() ) );
         }
 
-        return super.getEntityList( metaData, options, filters, orders );
+        return super.getEntityList( metadata, options, filters, orders );
     }
 }

=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/view/AbstractGridView.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/view/AbstractGridView.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/view/AbstractGridView.java	2016-02-02 06:34:22 +0000
@@ -28,15 +28,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 import org.hisp.dhis.common.Grid;
 import org.hisp.dhis.common.GridHeader;
 import org.hisp.dhis.common.IdentifiableObject;
@@ -44,9 +35,17 @@
 import org.hisp.dhis.system.grid.ListGrid;
 import org.hisp.dhis.system.util.PredicateUtils;
 import org.hisp.dhis.system.util.ReflectionUtils;
-import org.hisp.dhis.webapi.webdomain.WebMetaData;
+import org.hisp.dhis.webapi.webdomain.WebMetadata;
 import org.springframework.web.servlet.view.AbstractView;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
  */
@@ -61,16 +60,16 @@
 
         List<Grid> grids = new ArrayList<>();
 
-        if ( WebMetaData.class.isAssignableFrom( object.getClass() ) )
+        if ( WebMetadata.class.isAssignableFrom( object.getClass() ) )
         {
-            WebMetaData webMetaData = (WebMetaData) object;
-            Collection<Field> fields = ReflectionUtils.collectFields( WebMetaData.class, PredicateUtils.idObjectCollections );
+            WebMetadata metadata = (WebMetadata) object;
+            Collection<Field> fields = ReflectionUtils.collectFields( WebMetadata.class, PredicateUtils.idObjectCollections );
 
             for ( Field field : fields )
             {
-                List<IdentifiableObject> identifiableObjects = ReflectionUtils.invokeGetterMethod( field.getName(), webMetaData );
+                List<IdentifiableObject> identifiableObjects = ReflectionUtils.invokeGetterMethod( field.getName(), metadata );
 
-                if ( identifiableObjects.isEmpty() )
+                if ( identifiableObjects == null || identifiableObjects.isEmpty() )
                 {
                     continue;
                 }

=== removed file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/webdomain/WebMetaData.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/webdomain/WebMetaData.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/webdomain/WebMetaData.java	1970-01-01 00:00:00 +0000
@@ -1,79 +0,0 @@
-package org.hisp.dhis.webapi.webdomain;
-
-/*
- * Copyright (c) 2004-2016, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
-import org.hisp.dhis.common.DxfNamespaces;
-import org.hisp.dhis.common.LinkableObject;
-import org.hisp.dhis.common.Pager;
-import org.hisp.dhis.dxf2.metadata.MetaData;
-
-/**
- * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
- */
-public class WebMetaData
-    extends MetaData
-{
-    private Pager pager;
-
-    private LinkableObject linkableObject;
-
-    @JsonProperty
-    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
-    public Pager getPager()
-    {
-        return pager;
-    }
-
-    public void setPager( Pager pager )
-    {
-        this.pager = pager;
-    }
-
-    @JsonProperty
-    @JacksonXmlProperty( isAttribute = true )
-    public String getLink()
-    {
-        if ( linkableObject == null )
-        {
-            return null;
-        }
-
-        return linkableObject.getHref();
-    }
-
-    public void setLink( String link )
-    {
-        if ( linkableObject != null )
-        {
-            linkableObject.setHref( link );
-        }
-    }
-}

=== added file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/webdomain/WebMetadata.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/webdomain/WebMetadata.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/webdomain/WebMetadata.java	2016-02-02 06:34:22 +0000
@@ -0,0 +1,56 @@
+package org.hisp.dhis.webapi.webdomain;
+
+/*
+ * Copyright (c) 2004-2016, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import org.hisp.dhis.common.DxfNamespaces;
+import org.hisp.dhis.common.Pager;
+import org.hisp.dhis.dxf2.metadata.Metadata;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+public class WebMetadata
+    extends Metadata
+{
+    private Pager pager;
+
+    @JsonProperty
+    @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
+    public Pager getPager()
+    {
+        return pager;
+    }
+
+    public void setPager( Pager pager )
+    {
+        this.pager = pager;
+    }
+}

=== modified file 'dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/util/ImportMetaDataCsvTask.java'
--- dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/util/ImportMetaDataCsvTask.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/util/ImportMetaDataCsvTask.java	2016-02-02 06:34:22 +0000
@@ -35,7 +35,7 @@
 import org.hisp.dhis.dxf2.common.ImportOptions;
 import org.hisp.dhis.dxf2.csv.CsvImportService;
 import org.hisp.dhis.dxf2.metadata.ImportService;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.scheduling.TaskId;
 
 import java.io.IOException;
@@ -85,11 +85,11 @@
     @Override
     public void call()
     {
-        MetaData metaData;
+        Metadata metadata;
 
         try
         {
-            metaData = csvImportService.fromCsv( inputStream, clazz );
+            metadata = csvImportService.fromCsv( inputStream, clazz );
         }
         catch ( IOException ex )
         {
@@ -97,6 +97,6 @@
             return;
         }
 
-        importService.importMetaData( userUid, metaData, importOptions, taskId );
+        importService.importMetaData( userUid, metadata, importOptions, taskId );
     }
 }

=== modified file 'dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/util/ImportMetaDataTask.java'
--- dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/util/ImportMetaDataTask.java	2016-01-04 02:27:49 +0000
+++ dhis-2/dhis-web/dhis-web-importexport/src/main/java/org/hisp/dhis/importexport/action/util/ImportMetaDataTask.java	2016-02-02 06:34:22 +0000
@@ -35,7 +35,7 @@
 import org.hisp.dhis.dxf2.common.ImportOptions;
 import org.hisp.dhis.dxf2.common.JacksonUtils;
 import org.hisp.dhis.dxf2.metadata.ImportService;
-import org.hisp.dhis.dxf2.metadata.MetaData;
+import org.hisp.dhis.dxf2.metadata.Metadata;
 import org.hisp.dhis.scheduling.TaskId;
 
 import java.io.IOException;
@@ -76,17 +76,17 @@
     @Override
     public void call()
     {
-        MetaData metaData;
+        Metadata metadata;
 
         try
         {
             if ( "json".equals( format ) )
             {
-                metaData = JacksonUtils.fromJson( inputStream, MetaData.class );
+                metadata = JacksonUtils.fromJson( inputStream, Metadata.class );
             }
             else
             {
-                metaData = JacksonUtils.fromXml( inputStream, MetaData.class );
+                metadata = JacksonUtils.fromXml( inputStream, Metadata.class );
             }
         }
         catch ( IOException ex )
@@ -96,6 +96,6 @@
             throw new RuntimeException( "Failed to parse meta data input stream", ex );
         }
 
-        importService.importMetaData( userUid, metaData, importOptions, taskId );
+        importService.importMetaData( userUid, metadata, importOptions, taskId );
     }
 }