| // Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| package com.android.tools.r8.cfmethodgeneration; | |
| public class JavaStringBuilder { | |
| private final StringBuilder builder = new StringBuilder(); | |
| private int indentation = 0; | |
| public JavaStringBuilder append(boolean b) { | |
| builder.append(b); | |
| return this; | |
| } | |
| public JavaStringBuilder append(char c) { | |
| builder.append(c); | |
| return this; | |
| } | |
| public JavaStringBuilder append(int i) { | |
| builder.append(i); | |
| return this; | |
| } | |
| public JavaStringBuilder append(String string) { | |
| builder.append(string); | |
| return this; | |
| } | |
| public JavaStringBuilder appendLine() { | |
| return append('\n'); | |
| } | |
| public JavaStringBuilder appendLine(char c) { | |
| return append(c).appendLine(); | |
| } | |
| public JavaStringBuilder appendLine(String string) { | |
| return append(string).appendLine(); | |
| } | |
| public JavaStringBuilder appendOpeningBrace() { | |
| return appendLine('{').indent(2); | |
| } | |
| public JavaStringBuilder appendClosingBrace() { | |
| return indent(-2).startLine().appendLine('}'); | |
| } | |
| public JavaStringBuilder appendOpeningArrayBrace() { | |
| return appendLine('{').indent(4); | |
| } | |
| public JavaStringBuilder appendClosingArrayBrace() { | |
| return indent(-4).startLine().appendLine("};"); | |
| } | |
| public JavaStringBuilder appendOpeningMultiLineParenthesis() { | |
| return appendLine('(').indent(4); | |
| } | |
| public JavaStringBuilder appendClosingMultiLineParenthesis() { | |
| return append(')').indent(-4); | |
| } | |
| public JavaStringBuilder indent(int change) { | |
| indentation += change; | |
| return this; | |
| } | |
| public JavaStringBuilder startLine() { | |
| for (int i = 0; i < indentation; i++) { | |
| append(' '); | |
| } | |
| return this; | |
| } | |
| @Override | |
| public String toString() { | |
| return builder.toString(); | |
| } | |
| } |