in sdk/core/azure-core-rest/src/main/java/com/azure/android/core/rest/HttpResponseMapper.java [428:457]
private Type expandContentEncodedType(Type contentEncodedType, Type contentDecodeType) {
Objects.requireNonNull(contentEncodedType);
if (contentDecodeType == byte[].class) {
if (contentEncodedType == Base64Url.class) {
return Base64Url.class;
}
} else if (contentDecodeType == OffsetDateTime.class) {
if (contentEncodedType == DateTimeRfc1123.class) {
return DateTimeRfc1123.class;
} else if (contentEncodedType == UnixTime.class) {
return UnixTime.class;
}
} else if (TypeUtil.isTypeOrSubTypeOf(contentDecodeType, List.class)) {
final Type resultElementType = TypeUtil.getTypeArgument(contentDecodeType);
final Type wireResponseElementType = expandContentEncodedType(contentEncodedType, resultElementType);
return TypeUtil.createParameterizedType(((ParameterizedType) contentDecodeType).getRawType(),
wireResponseElementType);
} else if (TypeUtil.isTypeOrSubTypeOf(contentDecodeType, Map.class)) {
final Type[] typeArguments = TypeUtil.getTypeArguments(contentDecodeType);
final Type resultValueType = typeArguments[1];
final Type wireResponseValueType = expandContentEncodedType(contentEncodedType, resultValueType);
return TypeUtil.createParameterizedType(((ParameterizedType) contentDecodeType).getRawType(),
typeArguments[0], wireResponseValueType);
}
return contentDecodeType;
}