rivate static boolean validateObtainViaAnnotations(Stream<BuilderInfo> builderInfos, @NotNull ProblemSink problemSink) {
    builderInfos.map(BuilderInfo::withObtainVia)
      .filter(BuilderInfo::hasObtainViaAnnotation)
      .forEach(builderInfo ->
               {
                 if (StringUtil.isEmpty(builderInfo.getViaFieldName()) == StringUtil.isEmpty(builderInfo.getViaMethodName())) {
                   problemSink.addErrorMessage("inspection.message.syntax.either.obtain.via.field");
                   problemSink.markFailed();
                 }

                 if (StringUtil.isEmpty(builderInfo.getViaMethodName()) && builderInfo.isViaStaticCall()) {
                   problemSink.addErrorMessage("inspection.message.obtain.via.is.static.true.not.valid.unless.method.has.been.set");
                   problemSink.markFailed();
                 }
               });
    return problemSink.success();
  }

rivate static boolean validateObtainViaAnnotations(Stream<BuilderInfo> builderInfos, @NotNull ProblemSink problemSink) 