/* @Nullable */ private ArrayTypeReference doTryConvertToArray( ParameterizedTypeReference typeReference, RecursionGuard<JvmTypeParameter> recursionGuard) { JvmType type = typeReference.getType(); if (recursionGuard.tryNext((JvmTypeParameter) type)) { List<LightweightTypeReference> superTypes = typeReference.getSuperTypes(); for (int i = 0, size = superTypes.size(); i < size; i++) { LightweightTypeReference superType = superTypes.get(i); if (superType.isArray()) { return (ArrayTypeReference) superType; } ArrayTypeReference result = doTryConvertToArray(typeReference); if (result != null) { return result; } else { JvmType rawSuperType = superType.getType(); if (rawSuperType != null && rawSuperType.eClass() == TypesPackage.Literals.JVM_TYPE_PARAMETER) { result = doTryConvertToArray((ParameterizedTypeReference) superType, recursionGuard); if (result != null) return result; } } } } return null; }
/* @Nullable */ public ArrayTypeReference tryConvertToArray(ParameterizedTypeReference typeReference) { ArrayTypeReference result = doTryConvertToArray(typeReference); if (result != null) { return result; } else { JvmType type = typeReference.getType(); if (type.eClass() == TypesPackage.Literals.JVM_TYPE_PARAMETER) { return doTryConvertToArray(typeReference, new RecursionGuard<JvmTypeParameter>()); } } return null; }