private static boolean typeNeedsTypeVariable()

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