@@ -773,7 +773,9 @@ private void describeResource(String path, Resource resource, XMLStreamWriter xm
773773 }
774774
775775 private String describe (Type type ) {
776- if (type instanceof WildcardType ) {
776+ if (type instanceof Class <?>) {
777+ return describe ((Class <?>)type );
778+ } else if (type instanceof WildcardType ) {
777779 return describe (((WildcardType )type ).getUpperBounds ()[0 ]);
778780 } else if (type instanceof ParameterizedType ) {
779781 ParameterizedType parameterizedType = (ParameterizedType )type ;
@@ -789,44 +791,6 @@ private String describe(Type type) {
789791 } else {
790792 throw new IllegalArgumentException ();
791793 }
792- } else if (type instanceof Class <?>) {
793- if (Iterable .class .isAssignableFrom ((Class <?>)type )) {
794- return describe (new ParameterizedType () {
795- @ Override
796- public Type [] getActualTypeArguments () {
797- return new Type [] {Object .class };
798- }
799-
800- @ Override
801- public Type getRawType () {
802- return Iterable .class ;
803- }
804-
805- @ Override
806- public Type getOwnerType () {
807- return null ;
808- }
809- });
810- } else if (Map .class .isAssignableFrom ((Class <?>)type )) {
811- return describe (new ParameterizedType () {
812- @ Override
813- public Type [] getActualTypeArguments () {
814- return new Type [] {Object .class , Object .class };
815- }
816-
817- @ Override
818- public Type getRawType () {
819- return Map .class ;
820- }
821-
822- @ Override
823- public Type getOwnerType () {
824- return null ;
825- }
826- });
827- } else {
828- return describe ((Class <?>)type );
829- }
830794 } else {
831795 throw new IllegalArgumentException ();
832796 }
@@ -873,6 +837,40 @@ private String describe(Class<?> type) {
873837 return "datetime-local" ;
874838 } else if (type == URL .class ) {
875839 return "url" ;
840+ } else if (Iterable .class .isAssignableFrom (type )) {
841+ return describe (new ParameterizedType () {
842+ @ Override
843+ public Type [] getActualTypeArguments () {
844+ return new Type [] {Object .class };
845+ }
846+
847+ @ Override
848+ public Type getRawType () {
849+ return Iterable .class ;
850+ }
851+
852+ @ Override
853+ public Type getOwnerType () {
854+ return null ;
855+ }
856+ });
857+ } else if (Map .class .isAssignableFrom (type )) {
858+ return describe (new ParameterizedType () {
859+ @ Override
860+ public Type [] getActualTypeArguments () {
861+ return new Type [] {Object .class , Object .class };
862+ }
863+
864+ @ Override
865+ public Type getRawType () {
866+ return Map .class ;
867+ }
868+
869+ @ Override
870+ public Type getOwnerType () {
871+ return null ;
872+ }
873+ });
876874 } else {
877875 if (!structures .containsKey (type )) {
878876 Map <String , Method > accessors = BeanAdapter .getAccessors (type );
0 commit comments