public CharSequence renderToBuilderPrependStatement() {
    if (hasObtainViaAnnotation() && StringUtil.isNotEmpty(viaMethodName)) {
      final StringBuilder result = new StringBuilder();
      result.append(PsiModifier.FINAL);
      result.append(' ');
      result.append(fieldInBuilderType.getCanonicalText(false));
      result.append(' ');
      result.append(fieldInBuilderName);
      result.append(" = ");
      result.append(viaStaticCall ? getPsiClass().getQualifiedName() : instanceVariableName);
      result.append('.');
      //TODO should generate '<T>' here for generic methods
      result.append(viaMethodName);
      result.append(viaStaticCall ? "(" + instanceVariableName + ")" : "()");
      result.append(';');
      return result;
    }
    return "";
  }
public CharSequence renderToBuilderPrependStatement()