private CharSequence renderToBuilderCall(boolean usePrependLogic) {
    if (hasObtainViaAnnotation()) {
      final StringBuilder result = new StringBuilder();
      result.append(fieldInBuilderName);
      result.append('(');
      if (StringUtil.isNotEmpty(viaFieldName)) {
        result.append(instanceVariableName).append(".").append(viaFieldName);
      }
      else if (StringUtil.isNotEmpty(viaMethodName)) {
        if (usePrependLogic) {//call to 'viaMethodName' is rendered as prepend statement
          result.append(fieldInBuilderName);
        }
        else {
          result.append(viaStaticCall ? getPsiClass().getQualifiedName() : instanceVariableName);
          result.append('.');
          result.append(viaMethodName);
          result.append(viaStaticCall ? "(" + instanceVariableName + ")" : "()");
        }
      }
      else {
        result.append(instanceVariableName).append(".").append(variableInClass.getName());
      }
      result.append(')');
      return result;
    }
    else {
      if (!usePrependLogic || !hasSingularAnnotation()) {
        return builderElementHandler.renderToBuilderCall(this);
      }
      else {
        return "";
      }
    }
  }
private CharSequence renderToBuilderCall(boolean usePrependLogic)