TextBuffer (int indent, BytecodeMappingTracer tracer) { tracer.addMapping(bytecode); //if it is impossible to process TextBuffer buf = new TextBuffer(); if (isBootstrapSwitch(this)) { InvocationExprent invocationExprent = (InvocationExprent)value; List<Exprent> parameters = invocationExprent.getParameters(); if (parameters.size() == 2) { Exprent exprent = parameters.get(1); buf.append("//").append(exprent.toJava(indent, tracer)).append("->").append("value").appendLineSeparator(); tracer.incrementCurrentSourceLine(); List<PooledConstant> arguments = invocationExprent.getBootstrapArguments(); for (int i = 0; i < arguments.size(); i++) { PooledConstant argument = arguments.get(i); if (argument instanceof PrimitiveConstant primitiveConstant && primitiveConstant.value != null) { buf.appendIndent(indent).append("//").append(i).append("->").append(primitiveConstant.value.toString()).appendLineSeparator(); tracer.incrementCurrentSourceLine(); } } buf.appendIndent(indent); } } buf.append(value.toJava(indent, tracer).enclose("switch (", ")")); return buf; }