private Type expandContentEncodedType()

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;
    }