/** * Process each instance of data in our collection * @param element * @return */ private Object processCollectionElement( final Object element ) { if ( element instanceof EntityObject ) { return toMap((EntityObject) element); } //recurse into another list structure (2d + arrays) if (element instanceof ListField || element instanceof ArrayField || element instanceof SetField){ return processCollection( ( Collection ) ( ( AbstractField ) element ).getValue() ); } if ( element instanceof List || element instanceof Set ) { return processCollection( ( Collection ) element ); // recursion; } return element; }