private static < T > ConvertibleType < T > of ( final DynamoDBTypeConverter < ? , T > converter ) { final Class < ? > clazz = converter . getClass ( ) ; if ( ! clazz . isInterface ( ) ) { for ( Class < ? > c = clazz ; Object . class != c ; c = c . getSuperclass ( ) ) { for ( final Type genericType : c . getGenericInterfaces ( ) ) { final ConvertibleType < T > type = ConvertibleType . < T > of ( genericType ) ; if ( type . is ( DynamoDBTypeConverter . class ) ) { if ( type . params . length == 2 && type . param ( 0 ) . targetType ( ) != Object . class ) { return type . param ( 0 ) ; } } } } final ConvertibleType < T > type = ConvertibleType . < T > of ( clazz . getGenericSuperclass ( ) ) ; if ( type . is ( DynamoDBTypeConverter . class ) ) { if ( type . params . length > 0 && type . param ( 0 ) . targetType ( ) != Object . class ) { return type . param ( 0 ) ; } } } throw new DynamoDBMappingException ( "could not resolve type of " + clazz ) ; }
Returns the conversion type for the converter .