void skipObject()

in modules/core/src/main/java/org/apache/ignite/internal/binary/RawBinaryObjectExtractor.java [83:270]


    void skipObject() {
        int objStartPos = in.position();

        byte type = in.readByte();

        switch (type) {
            case GridBinaryMarshaller.NULL:
                break;

            case GridBinaryMarshaller.OBJ:
                skipBytes(BinaryUtils.length(in, objStartPos) - /** Object type. */ Byte.BYTES);

                break;

            case GridBinaryMarshaller.BINARY_OBJ:
                skipBytes(in.readInt());

                skipBytes(Integer.BYTES); // Offset.

                break;

            case GridBinaryMarshaller.BYTE:
            case GridBinaryMarshaller.BOOLEAN:
                skipBytes(Byte.BYTES);

                break;

            case GridBinaryMarshaller.CHAR:
                skipBytes(Character.BYTES);

                break;

            case GridBinaryMarshaller.SHORT:
                skipBytes(Short.BYTES);

                break;

            case GridBinaryMarshaller.FLOAT:
                skipBytes(Float.BYTES);

                break;

            case GridBinaryMarshaller.HANDLE:
            case GridBinaryMarshaller.INT:
                skipBytes(Integer.BYTES);

                break;

            case GridBinaryMarshaller.ENUM:
            case GridBinaryMarshaller.BINARY_ENUM: {
                skipTypeId();

                skipBytes(Integer.BYTES); // Ordinal.

                break;
            }

            case GridBinaryMarshaller.LONG:
            case GridBinaryMarshaller.DATE:
            case GridBinaryMarshaller.TIME:
                skipBytes(Long.BYTES);

                break;

            case GridBinaryMarshaller.DOUBLE:
                skipBytes(Double.BYTES);

                break;

            case GridBinaryMarshaller.OPTM_MARSH:
            case GridBinaryMarshaller.STRING:
                skipBytes(in.readInt());

                break;

            case GridBinaryMarshaller.DECIMAL:
                skipBytes(Integer.BYTES); // Scale.
                skipBytes(in.readInt());

                break;

            case GridBinaryMarshaller.UUID:
                skipBytes(Long.BYTES + Long.BYTES);

                break;

            case GridBinaryMarshaller.TIMESTAMP:
                skipBytes(Long.BYTES + Integer.BYTES);

                break;

            case GridBinaryMarshaller.BYTE_ARR:
            case GridBinaryMarshaller.BOOLEAN_ARR:
                skipBytes(in.readInt() * Byte.BYTES);

                break;

            case GridBinaryMarshaller.CHAR_ARR:
                skipBytes(in.readInt() * Character.BYTES);

                break;

            case GridBinaryMarshaller.SHORT_ARR:
                skipBytes(in.readInt() * Short.BYTES);

                break;

            case GridBinaryMarshaller.INT_ARR:
                skipBytes(in.readInt() * Integer.BYTES);

                break;

            case GridBinaryMarshaller.FLOAT_ARR:
                skipBytes(in.readInt() * Float.BYTES);

                break;

            case GridBinaryMarshaller.LONG_ARR:
                skipBytes(in.readInt() * Long.BYTES);

                break;

            case GridBinaryMarshaller.DOUBLE_ARR:
                skipBytes(in.readInt() * Double.BYTES);

                break;

            case GridBinaryMarshaller.DECIMAL_ARR:
            case GridBinaryMarshaller.DATE_ARR:
            case GridBinaryMarshaller.TIMESTAMP_ARR:
            case GridBinaryMarshaller.TIME_ARR:
            case GridBinaryMarshaller.UUID_ARR:
            case GridBinaryMarshaller.STRING_ARR: {
                skipCortege();

                break;
            }

            case GridBinaryMarshaller.ENUM_ARR:
            case GridBinaryMarshaller.OBJ_ARR: {
                skipTypeId();

                skipCortege();

                break;
            }

            case GridBinaryMarshaller.COL: {
                int size = in.readInt();

                skipBytes(Byte.BYTES); // Collection type.

                skipCortege(size);

                break;
            }

            case GridBinaryMarshaller.MAP: {
                int size = in.readInt() * 2;

                skipBytes(Byte.BYTES); // Map type.

                skipCortege(size);

                break;
            }

            case GridBinaryMarshaller.CLASS: {
                skipTypeId();

                break;
            }

            case GridBinaryMarshaller.PROXY: {
                int size = in.readInt();

                for (int i = 0; i < size; i++)
                    skipTypeId(); // Interface type.

                skipObject();

                break;
            }

            default:
                throw new BinaryObjectException("Unsupported binary type [type=" + type + ']');
        }
    }