public Object readLengthList()

in hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/BasicDeserializer.java [517:607]


    public Object readLengthList(AbstractHessianInput in, int length)
            throws IOException {
        switch (_code) {
            case BOOLEAN_ARRAY: {
                boolean[] data = new boolean[length];

                in.addRef(data);

                for (int i = 0; i < data.length; i++)
                    data[i] = in.readBoolean();

                return data;
            }

            case SHORT_ARRAY: {
                short[] data = new short[length];

                in.addRef(data);

                for (int i = 0; i < data.length; i++)
                    data[i] = (short) in.readInt();

                return data;
            }

            case INTEGER_ARRAY: {
                int[] data = new int[length];

                in.addRef(data);

                for (int i = 0; i < data.length; i++)
                    data[i] = in.readInt();

                return data;
            }

            case LONG_ARRAY: {
                long[] data = new long[length];

                in.addRef(data);

                for (int i = 0; i < data.length; i++)
                    data[i] = in.readLong();

                return data;
            }

            case FLOAT_ARRAY: {
                float[] data = new float[length];
                in.addRef(data);

                for (int i = 0; i < data.length; i++)
                    data[i] = (float) in.readDouble();

                return data;
            }

            case DOUBLE_ARRAY: {
                double[] data = new double[length];
                in.addRef(data);

                for (int i = 0; i < data.length; i++)
                    data[i] = in.readDouble();

                return data;
            }

            case STRING_ARRAY: {
                String[] data = new String[length];
                in.addRef(data);

                for (int i = 0; i < data.length; i++)
                    data[i] = in.readString();

                return data;
            }

            case OBJECT_ARRAY: {
                Object[] data = new Object[length];
                in.addRef(data);

                for (int i = 0; i < data.length; i++)
                    data[i] = in.readObject();

                return data;
            }

            default:
                throw new UnsupportedOperationException(String.valueOf(this));
        }
    }