private <S, T> ConvertiblePair newPair(Class<S> sourceType, Class<T> targetType, TypeConverter<S, T> typeConverter) { ConvertiblePair pair; if (typeConverter instanceof FormattingTypeConverter) { pair = new ConvertiblePair(sourceType, targetType, ((FormattingTypeConverter) typeConverter).annotationType()); } else { pair = new ConvertiblePair(sourceType, targetType); } return pair; }