in dataenum-processor/src/main/java/com/spotify/dataenum/processor/generator/data/OutputValueFactory.java [111:135]
private static boolean typeNeedsTypeVariable(TypeName type, TypeVariableName typeVariable) {
if (typeVariable.equals(type)) {
return true;
}
if (type instanceof ParameterizedTypeName) {
ParameterizedTypeName parameterized = ((ParameterizedTypeName) type);
for (TypeName typeArgument : parameterized.typeArguments) {
if (typeVariable.equals(typeArgument)) {
return true;
}
if (typeNeedsTypeVariable(typeArgument, typeVariable)) {
return true;
}
}
}
if (type instanceof ArrayTypeName) {
ArrayTypeName arrayType = (ArrayTypeName) type;
if (typeVariable.equals(arrayType.componentType)) {
return true;
}
}
return false;
}