protected State nextObject()

in src/main/java/com/alibaba/com/caucho/hessian/io/HessianDebugState.java [380:781]


        protected State nextObject(int ch) {
            switch (ch) {
                case -1:
                    println();
                    return this;

                case 'N':
                    if (isShift(null))
                        return shift(null);
                    else {
                        printObject("null");
                        return this;
                    }

                case 'T':
                    if (isShift(Boolean.TRUE))
                        return shift(Boolean.TRUE);
                    else {
                        printObject("true");
                        return this;
                    }

                case 'F':
                    if (isShift(Boolean.FALSE))
                        return shift(Boolean.FALSE);
                    else {
                        printObject("false");
                        return this;
                    }

                case 0x80:
                case 0x81:
                case 0x82:
                case 0x83:
                case 0x84:
                case 0x85:
                case 0x86:
                case 0x87:
                case 0x88:
                case 0x89:
                case 0x8a:
                case 0x8b:
                case 0x8c:
                case 0x8d:
                case 0x8e:
                case 0x8f:

                case 0x90:
                case 0x91:
                case 0x92:
                case 0x93:
                case 0x94:
                case 0x95:
                case 0x96:
                case 0x97:
                case 0x98:
                case 0x99:
                case 0x9a:
                case 0x9b:
                case 0x9c:
                case 0x9d:
                case 0x9e:
                case 0x9f:

                case 0xa0:
                case 0xa1:
                case 0xa2:
                case 0xa3:
                case 0xa4:
                case 0xa5:
                case 0xa6:
                case 0xa7:
                case 0xa8:
                case 0xa9:
                case 0xaa:
                case 0xab:
                case 0xac:
                case 0xad:
                case 0xae:
                case 0xaf:

                case 0xb0:
                case 0xb1:
                case 0xb2:
                case 0xb3:
                case 0xb4:
                case 0xb5:
                case 0xb6:
                case 0xb7:
                case 0xb8:
                case 0xb9:
                case 0xba:
                case 0xbb:
                case 0xbc:
                case 0xbd:
                case 0xbe:
                case 0xbf: {
                    Integer value = new Integer(ch - 0x90);

                    if (isShift(value))
                        return shift(value);
                    else {
                        printObject(value.toString());
                        return this;
                    }
                }

                case 0xc0:
                case 0xc1:
                case 0xc2:
                case 0xc3:
                case 0xc4:
                case 0xc5:
                case 0xc6:
                case 0xc7:
                case 0xc8:
                case 0xc9:
                case 0xca:
                case 0xcb:
                case 0xcc:
                case 0xcd:
                case 0xce:
                case 0xcf:
                    return new IntegerState(this, "int", ch - 0xc8, 3);

                case 0xd0:
                case 0xd1:
                case 0xd2:
                case 0xd3:
                case 0xd4:
                case 0xd5:
                case 0xd6:
                case 0xd7:
                    return new IntegerState(this, "int", ch - 0xd4, 2);

                case 'I':
                    return new IntegerState(this, "int");

                case 0xd8:
                case 0xd9:
                case 0xda:
                case 0xdb:
                case 0xdc:
                case 0xdd:
                case 0xde:
                case 0xdf:
                case 0xe0:
                case 0xe1:
                case 0xe2:
                case 0xe3:
                case 0xe4:
                case 0xe5:
                case 0xe6:
                case 0xe7:
                case 0xe8:
                case 0xe9:
                case 0xea:
                case 0xeb:
                case 0xec:
                case 0xed:
                case 0xee:
                case 0xef: {
                    Long value = new Long(ch - 0xe0);

                    if (isShift(value))
                        return shift(value);
                    else {
                        printObject(value.toString() + "L");
                        return this;
                    }
                }

                case 0xf0:
                case 0xf1:
                case 0xf2:
                case 0xf3:
                case 0xf4:
                case 0xf5:
                case 0xf6:
                case 0xf7:
                case 0xf8:
                case 0xf9:
                case 0xfa:
                case 0xfb:
                case 0xfc:
                case 0xfd:
                case 0xfe:
                case 0xff:
                    return new LongState(this, "long", ch - 0xf8, 7);

                case 0x38:
                case 0x39:
                case 0x3a:
                case 0x3b:
                case 0x3c:
                case 0x3d:
                case 0x3e:
                case 0x3f:
                    return new LongState(this, "long", ch - 0x3c, 6);

                case BC_LONG_INT:
                    return new LongState(this, "long", 0, 4);

                case 'L':
                    return new LongState(this, "long");

                case 0x5b:
                case 0x5c: {
                    Double value = new Double(ch - 0x5b);

                    if (isShift(value))
                        return shift(value);
                    else {
                        printObject(value.toString());
                        return this;
                    }
                }

                case 0x5d:
                    return new DoubleIntegerState(this, 3);

                case 0x5e:
                    return new DoubleIntegerState(this, 2);

                case 0x5f:
                    return new MillsState(this);

                case 'D':
                    return new DoubleState(this);

                case 'Q':
                    return new RefState(this);

                case BC_DATE:
                    return new DateState(this);

                case BC_DATE_MINUTE:
                    return new DateState(this, true);

                case 0x00: {
                    String value = "\"\"";

                    if (isShift(value))
                        return shift(value);
                    else {
                        printObject(value.toString());
                        return this;
                    }
                }

                case 0x01:
                case 0x02:
                case 0x03:
                case 0x04:
                case 0x05:
                case 0x06:
                case 0x07:
                case 0x08:
                case 0x09:
                case 0x0a:
                case 0x0b:
                case 0x0c:
                case 0x0d:
                case 0x0e:
                case 0x0f:

                case 0x10:
                case 0x11:
                case 0x12:
                case 0x13:
                case 0x14:
                case 0x15:
                case 0x16:
                case 0x17:
                case 0x18:
                case 0x19:
                case 0x1a:
                case 0x1b:
                case 0x1c:
                case 0x1d:
                case 0x1e:
                case 0x1f:
                    return new StringState(this, 'S', ch);

                case 0x30:
                case 0x31:
                case 0x32:
                case 0x33:
                    return new StringState(this, 'S', ch - 0x30, true);

                case 'R':
                    return new StringState(this, 'S', false);

                case 'S':
                    return new StringState(this, 'S', true);

                case 0x20: {
                    String value = "binary(0)";

                    if (isShift(value))
                        return shift(value);
                    else {
                        printObject(value.toString());
                        return this;
                    }
                }

                case 0x21:
                case 0x22:
                case 0x23:
                case 0x24:
                case 0x25:
                case 0x26:
                case 0x27:
                case 0x28:
                case 0x29:
                case 0x2a:
                case 0x2b:
                case 0x2c:
                case 0x2d:
                case 0x2e:
                case 0x2f:
                    return new BinaryState(this, 'B', ch - 0x20);

                case 0x34:
                case 0x35:
                case 0x36:
                case 0x37:
                    return new BinaryState(this, 'B', ch - 0x34, true);

                case 'A':
                    return new BinaryState(this, 'B', false);

                case 'B':
                    return new BinaryState(this, 'B', true);

                case 'M':
                    return new MapState(this, _refId++);

                case 'H':
                    return new MapState(this, _refId++, false);

                case BC_LIST_VARIABLE:
                    return new ListState(this, _refId++, true);

                case BC_LIST_VARIABLE_UNTYPED:
                    return new ListState(this, _refId++, false);

                case BC_LIST_FIXED:
                    return new CompactListState(this, _refId++, true);

                case BC_LIST_FIXED_UNTYPED:
                    return new CompactListState(this, _refId++, false);

                case 0x70:
                case 0x71:
                case 0x72:
                case 0x73:
                case 0x74:
                case 0x75:
                case 0x76:
                case 0x77:
                    return new CompactListState(this, _refId++, true, ch - 0x70);

                case 0x78:
                case 0x79:
                case 0x7a:
                case 0x7b:
                case 0x7c:
                case 0x7d:
                case 0x7e:
                case 0x7f:
                    return new CompactListState(this, _refId++, false, ch - 0x78);

                case 'C':
                    return new ObjectDefState(this);

                case 0x60:
                case 0x61:
                case 0x62:
                case 0x63:
                case 0x64:
                case 0x65:
                case 0x66:
                case 0x67:
                case 0x68:
                case 0x69:
                case 0x6a:
                case 0x6b:
                case 0x6c:
                case 0x6d:
                case 0x6e:
                case 0x6f:
                    return new ObjectState(this, _refId++, ch - 0x60);

                case 'O':
                    return new ObjectState(this, _refId++);

                default:
                    return this;
            }
        }