org_eclipse_lemminx_extensions_contentmodel_XMLModelDiagnosticsTest_java
org.apache.xerces.impl.dtd.DTDGrammar
private void appendContentSpec(XMLContentSpec xMLContentSpec, StringBuffer stringBuffer, boolean bl, int n) {
        int n2 = xMLContentSpec.type & 0xF;
        switch (n2) {
            case 0: {
                if (xMLContentSpec.value == null && xMLContentSpec.otherValue == null) {
                    stringBuffer.append("#PCDATA");
                    break;
                }
                if (xMLContentSpec.value == null && xMLContentSpec.otherValue != null) {
                    stringBuffer.append("##any:uri=").append(xMLContentSpec.otherValue);
                    break;
                }
                if (xMLContentSpec.value == null) {
                    stringBuffer.append("##any");
                    break;
                }
                stringBuffer.append(xMLContentSpec.value);
                break;
            }
            case 1: {
                if (n == 3 || n == 2 || n == 1) {
                    this.getContentSpec(((int[])xMLContentSpec.value)[0], xMLContentSpec);
                    stringBuffer.append('(');
                    this.appendContentSpec(xMLContentSpec, stringBuffer, true, n2);
                    stringBuffer.append(')');
                } else {
                    this.getContentSpec(((int[])xMLContentSpec.value)[0], xMLContentSpec);
                    this.appendContentSpec(xMLContentSpec, stringBuffer, true, n2);
                }
                stringBuffer.append('?');
                break;
            }
            case 2: {
                if (n == 3 || n == 2 || n == 1) {
                    this.getContentSpec(((int[])xMLContentSpec.value)[0], xMLContentSpec);
                    stringBuffer.append('(');
                    this.appendContentSpec(xMLContentSpec, stringBuffer, true, n2);
                    stringBuffer.append(')');
                } else {
                    this.getContentSpec(((int[])xMLContentSpec.value)[0], xMLContentSpec);
                    this.appendContentSpec(xMLContentSpec, stringBuffer, true, n2);
                }
                stringBuffer.append('*');
                break;
            }
            case 3: {
                if (n == 3 || n == 2 || n == 1) {
                    stringBuffer.append('(');
                    this.getContentSpec(((int[])xMLContentSpec.value)[0], xMLContentSpec);
                    this.appendContentSpec(xMLContentSpec, stringBuffer, true, n2);
                    stringBuffer.append(')');
                } else {
                    this.getContentSpec(((int[])xMLContentSpec.value)[0], xMLContentSpec);
                    this.appendContentSpec(xMLContentSpec, stringBuffer, true, n2);
                }
                stringBuffer.append('+');
                break;
            }
            case 4: 
            case 5: {
                if (bl) {
                    stringBuffer.append('(');
                }
                short s = xMLContentSpec.type;
                int n3 = ((int[])xMLContentSpec.otherValue)[0];
                this.getContentSpec(((int[])xMLContentSpec.value)[0], xMLContentSpec);
                this.appendContentSpec(xMLContentSpec, stringBuffer, xMLContentSpec.type != s, n2);
                if (s == 4) {
                    stringBuffer.append('|');
                } else {
                    stringBuffer.append(',');
                }
                this.getContentSpec(n3, xMLContentSpec);
                this.appendContentSpec(xMLContentSpec, stringBuffer, true, n2);
                if (!bl) break;
                stringBuffer.append(')');
                break;
            }
            case 6: {
                stringBuffer.append("##any");
                if (xMLContentSpec.otherValue == null) break;
                stringBuffer.append(":uri=");
                stringBuffer.append(xMLContentSpec.otherValue);
                break;
            }
            case 7: {
                stringBuffer.append("##other:uri=");
                stringBuffer.append(xMLContentSpec.otherValue);
                break;
            }
            case 8: {
                stringBuffer.append("##local");
                break;
            }
            default: {
                stringBuffer.append("???");
            }
        }
    }
 -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer -> java.lang.StringBuffer.append(char): java.lang.StringBuffer
 [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [EXIT] [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [EXIT] [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [EXIT] [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [EXIT] [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [EXIT] [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.lang.StringBuffer.append(java.lang.Object): java.lang.StringBuffer [EXIT] -> java.lang.StringBuffer.append(char): java.lang.StringBuffer [EXIT] [EXIT]