void (@Nullable GrExpression operand, StringBuilder builder, boolean multiline) { if (operand instanceof GrRegex) { for (GroovyPsiElement element : ((GrRegex)operand).getAllContentParts()) { if (element instanceof GrStringInjection) { builder.append(element.getText()); } else if (element instanceof GrStringContent) { if (GrStringUtil.isDollarSlashyString((GrLiteral)operand)) { processDollarSlashyContent(builder, multiline, element.getText()); } else { processSlashyContent(builder, multiline, element.getText()); } } } } else if (operand instanceof GrString) { boolean isMultiline = GrStringUtil.isMultilineStringLiteral((GrLiteral)operand); for (GroovyPsiElement element : ((GrString)operand).getAllContentParts()) { if (element instanceof GrStringInjection) { builder.append(element.getText()); } else if (element instanceof GrStringContent) { if (isMultiline) { processMultilineGString(builder, element.getText()); } else { processSinglelineGString(builder, element.getText()); } } } } else if (operand instanceof GrLiteral literal) { String text = GrStringUtil.removeQuotes(operand.getText()); if (GrStringUtil.isSingleQuoteString(literal)) { processSinglelineString(builder, text); } else if (GrStringUtil.isTripleQuoteString(literal)) { processMultilineString(builder, text); } else if (GrStringUtil.isDoubleQuoteString(literal)) { processSinglelineGString(builder, text); } else if (GrStringUtil.isTripleDoubleQuoteString(literal)) { processMultilineGString(builder, text); } else if (GrStringUtil.isSlashyString(literal)) { processSlashyContent(builder, multiline, text); } else if (GrStringUtil.isDollarSlashyString(literal)) { processDollarSlashyContent(builder, multiline, text); } } else if (MyPredicate.satisfied(operand)) { performIntention((GrBinaryExpression)operand, builder, multiline); } else if (isToStringMethod(operand, builder)) { //nothing to do } else { builder.append(START_BRACE).append(operand == null ? "" : operand.getText()).append(END_BRACE); } }