=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/ReflectionUtils.java' --- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/ReflectionUtils.java 2014-03-06 04:16:46 +0000 +++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/ReflectionUtils.java 2014-03-12 17:30:37 +0000 @@ -404,7 +404,7 @@ return methods; } - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public static T invokeMethod( Object target, Method method, Object... args ) { try @@ -421,7 +421,7 @@ } } - @SuppressWarnings( "unchecked" ) + @SuppressWarnings("unchecked") public static T getFieldObject( Field field, T target ) { return (T) invokeGetterMethod( field.getName(), target ); @@ -745,6 +745,8 @@ } else if ( Collection.class.isAssignableFrom( returnType ) ) { + descriptor.setCollection( true ); + Type type = method.getGenericReturnType(); if ( ParameterizedType.class.isInstance( type ) ) @@ -754,7 +756,6 @@ if ( IdentifiableObject.class.isAssignableFrom( klass ) ) { - descriptor.setCollection( true ); descriptor.setIdentifiableObject( true ); } } === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.java 2014-03-10 18:36:41 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebUtils.java 2014-03-12 17:30:37 +0000 @@ -335,35 +335,32 @@ if ( value.isEmpty() ) { - if ( !descriptor.isCollection() && !descriptor.isIdentifiableObject() ) + if ( !descriptor.isIdentifiableObject() ) { output.put( key, returned ); } - else if ( descriptor.isIdentifiableObject() ) - { - if ( descriptor.isCollection() ) - { - List> properties = getIdentifiableObjectCollectionProperties( returned ); - output.put( key, properties ); - } - else - { - Map properties = getIdentifiableObjectProperties( returned ); - output.put( key, properties ); - } + else if ( !descriptor.isCollection() ) + { + Map properties = getIdentifiableObjectProperties( returned ); + output.put( key, properties ); + } + else if ( descriptor.isCollection() ) + { + List> properties = getIdentifiableObjectCollectionProperties( returned ); + output.put( key, properties ); } } else { if ( descriptor.isCollection() ) { - Collection objects = (Collection) returned; + Collection objects = (Collection) returned; ArrayList arrayList = Lists.newArrayList(); output.put( key, arrayList ); - for ( IdentifiableObject identifiableObject : objects ) + for ( Object obj : objects ) { - Map properties = buildObjectOutput( identifiableObject, value ); + Map properties = buildObjectOutput( obj, value ); arrayList.add( properties ); } }