code: 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);
      }
docs: Returns the conversion type for the converter.