public Properties readValue()

in proton-j/src/main/java/org/apache/qpid/proton/codec/messaging/FastPathPropertiesType.java [59:132]


    public Properties readValue() {
        DecoderImpl decoder = getDecoder();
        ReadableBuffer buffer = decoder.getBuffer();
        byte typeCode = decoder.getBuffer().get();

        @SuppressWarnings("unused")
        int size = 0;
        int count = 0;

        switch (typeCode) {
            case EncodingCodes.LIST0:
                break;
            case EncodingCodes.LIST8:
                size = buffer.get() & 0xff;
                count = buffer.get() & 0xff;
                break;
            case EncodingCodes.LIST32:
                size = buffer.getInt();
                count = buffer.getInt();
                break;
            default:
                throw new DecodeException("Incorrect type found in Properties encoding: " + typeCode);
        }

        Properties properties = new Properties();

        for (int index = 0; index < count; ++index) {
            switch (index) {
                case 0:
                    properties.setMessageId(decoder.readObject());
                    break;
                case 1:
                    properties.setUserId(decoder.readBinary(null));
                    break;
                case 2:
                    properties.setTo(decoder.readString(null));
                    break;
                case 3:
                    properties.setSubject(decoder.readString(null));
                    break;
                case 4:
                    properties.setReplyTo(decoder.readString(null));
                    break;
                case 5:
                    properties.setCorrelationId(decoder.readObject());
                    break;
                case 6:
                    properties.setContentType(decoder.readSymbol(null));
                    break;
                case 7:
                    properties.setContentEncoding(decoder.readSymbol(null));
                    break;
                case 8:
                    properties.setAbsoluteExpiryTime(decoder.readTimestamp(null));
                    break;
                case 9:
                    properties.setCreationTime(decoder.readTimestamp(null));
                    break;
                case 10:
                    properties.setGroupId(decoder.readString(null));
                    break;
                case 11:
                    properties.setGroupSequence(decoder.readUnsignedInteger(null));
                    break;
                case 12:
                    properties.setReplyToGroupId(decoder.readString(null));
                    break;
                default:
                    throw new IllegalStateException("To many entries in Properties encoding");
            }
        }

        return properties;
    }