code: @Nullable static ExecutableElement findLargestPublicConstructor(TypeElement typeElement) {
      List<ExecutableElement> constructors =
          FluentIterable.from(ElementFilter.constructorsIn(typeElement.getEnclosedElements()))
              .filter(FILTER_NON_PUBLIC)
              .toList();
  
      if (constructors.size() == 0) {
        return null;
      }
  
      return PARAMETER_COUNT_ORDER.max(constructors);
    }
docs: Returns the public constructor in a given class with the largest number of arguments, or
  null if there are no public constructors.