public static Object unmarshalPrimitive()

in openwire-core/src/main/java/org/apache/activemq/openwire/utils/OpenWireMarshallingSupport.java [166:226]


    public static Object unmarshalPrimitive(DataInput in, boolean force) throws IOException {
        Object value = null;
        byte type = in.readByte();
        switch (type) {
            case BYTE_TYPE:
                value = Byte.valueOf(in.readByte());
                break;
            case BOOLEAN_TYPE:
                value = in.readBoolean() ? Boolean.TRUE : Boolean.FALSE;
                break;
            case CHAR_TYPE:
                value = Character.valueOf(in.readChar());
                break;
            case SHORT_TYPE:
                value = Short.valueOf(in.readShort());
                break;
            case INTEGER_TYPE:
                value = Integer.valueOf(in.readInt());
                break;
            case LONG_TYPE:
                value = Long.valueOf(in.readLong());
                break;
            case FLOAT_TYPE:
                value = new Float(in.readFloat());
                break;
            case DOUBLE_TYPE:
                value = new Double(in.readDouble());
                break;
            case BYTE_ARRAY_TYPE:
                value = new byte[in.readInt()];
                in.readFully((byte[]) value);
                break;
            case STRING_TYPE:
                if (force) {
                    value = in.readUTF();
                } else {
                    value = readUTF(in, in.readUnsignedShort());
                }
                break;
            case BIG_STRING_TYPE: {
                if (force) {
                    value = readUTF8(in);
                } else {
                    value = readUTF(in, in.readInt());
                }
                break;
            }
            case MAP_TYPE:
                value = unmarshalPrimitiveMap(in, true);
                break;
            case LIST_TYPE:
                value = unmarshalPrimitiveList(in, true);
                break;
            case NULL:
                value = null;
                break;
            default:
                throw new IOException("Unknown primitive type: " + type);
        }
        return value;
    }