State next()

in src/main/java/com/alibaba/com/caucho/hessian/io/HessianDebugState.java [1871:1917]


        State next(int ch) {
            switch (_state) {
                case MAJOR:
                    _major = ch;
                    _state = MINOR;
                    return this;

                case MINOR:
                    _minor = ch;
                    _state = HEADER;
                    println(-2, "call " + _major + "." + _minor);
                    return this;

                case HEADER:
                    if (ch == 'H') {
                        println();
                        print("header ");
                        _isObject = false;
                        _state = VALUE;
                        return new StringState(this, 'H', true);
                    } else if (ch == 'm') {
                        println();
                        print("method ");
                        _isObject = false;
                        _state = ARG;
                        return new StringState(this, 'm', true);
                    } else {
                        println((char) ch + ": unexpected char");
                        return popStack();
                    }

                case VALUE:
                    print(" => ");
                    _isObject = false;
                    _state = HEADER;
                    return nextObject(ch);

                case ARG:
                    if (ch == 'Z')
                        return _next;
                    else
                        return nextObject(ch);

                default:
                    throw new IllegalStateException();
            }
        }