15f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/*
25f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more
35f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * contributor license agreements.  See the NOTICE file distributed with
45f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * this work for additional information regarding copyright ownership.
55f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
65f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * (the "License"); you may not use this file except in compliance with
75f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * the License.  You may obtain a copy of the License at
85f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *
95f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *
115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  Unless required by applicable law or agreed to in writing, software
125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *
155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  See the License for the specific language governing permissions and
165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes *  limitations under the License.
175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/**
205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @author Aleksey V. Yantsen
215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/**
245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Created on 12.23.2004
255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespackage org.apache.harmony.jpda.tests.framework.jdwp;
275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.framework.TestErrorException;
295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/**
315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * This class provides types length for VM-independent and VM-dependent types.
325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespublic class TypesLengths {
345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    // Type IDs
365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte BYTE_ID = 1;
375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte BOOLEAN_ID = 2;
395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte INT_ID = 3;
415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte LONG_ID = 4;
435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte SHORT_ID = 5;
455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte FLOAT_ID = 6;
475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte DOUBLE_ID = 7;
495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte VOID_ID = 8;
515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte OBJECT_ID = 9;
535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte ARRAY_ID = 10;
555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte STRING_ID = 11;
575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte THREAD_ID = 12;
595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte THREADGROUP_ID = 13;
615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte METHOD_ID = 14;
635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte FIELD_ID = 15;
655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte FRAME_ID = 16;
675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte LOCATION_ID = 17;
695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte REFERENCE_TYPE_ID = 18;
715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte CLASS_ID = 19;
735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte CLASSLOADER_ID = 20;
755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte CLASSOBJECT_ID = 21;
775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static final byte CHAR_ID = 22;
795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    // Type lengths in bytes (VM-independent)
815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int byteLength = 1;
835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int booleanLength = 1;
855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int intLength = 4;
875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int longLength = 8;
895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int shortLength = 2;
915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int floatLength = 4;
935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int doubleLength = 8;
955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int voidLength = 0;
975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int charLength = 2;
995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    // Type lengths in bytes (VM-dependent)
1015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int objectLength;
1035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int arrayLength;
1055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int stringLength;
1075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int threadLength;
1095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int threadGroupLength;
1115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int methodLength;
1135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int fieldLength;
1155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int frameLength;
1175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int locationLength;
1195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int referenceLength;
1215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int classLength;
1235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int classLoaderLength;
1255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    private static int classObjectLength;
1275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
1295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * Gets types length for type ID.
1305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     *
1315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * @param typeID
1325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     *            Type ID
1335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * @return type length
1345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
1355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static int getTypeLength(byte typeID) throws TestErrorException {
1365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        switch (typeID) {
1375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case BYTE_ID: {
1385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return byteLength;
1395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case BOOLEAN_ID: {
1415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return booleanLength;
1425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case INT_ID: {
1445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return intLength;
1455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case LONG_ID: {
1475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return longLength;
1485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case SHORT_ID: {
1505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return shortLength;
1515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case FLOAT_ID: {
1535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return floatLength;
1545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case DOUBLE_ID: {
1565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return doubleLength;
1575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case VOID_ID: {
1595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return voidLength;
1605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case OBJECT_ID: {
1625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return objectLength;
1635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case ARRAY_ID: {
1655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return arrayLength;
1665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case STRING_ID: {
1685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return stringLength;
1695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case THREAD_ID: {
1715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return threadLength;
1725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case THREADGROUP_ID: {
1745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return threadGroupLength;
1755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case METHOD_ID: {
1775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return methodLength;
1785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case FIELD_ID: {
1805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return fieldLength;
1815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case FRAME_ID: {
1835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return frameLength;
1845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case LOCATION_ID: {
1865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return locationLength;
1875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case REFERENCE_TYPE_ID: {
1895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return referenceLength;
1905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case CLASS_ID: {
1925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return classLength;
1935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case CLASSLOADER_ID: {
1955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return classLoaderLength;
1965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case CLASSOBJECT_ID: {
1985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return classObjectLength;
1995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case CHAR_ID: {
2015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return charLength;
2025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        default:
2045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            throw new TestErrorException("Unexpected type ID: " + typeID);
2055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
2075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
2095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * Sets types length for type ID
2105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     *
2115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * @param typeID Type ID
2125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * @param typeLength type length
2135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
2145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static void setTypeLength(byte typeID, int typeLength)
2155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            throws TestErrorException {
2165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        switch (typeID) {
2175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case BYTE_ID: {
2185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            byteLength = typeLength;
2195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case BOOLEAN_ID: {
2225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            booleanLength = typeLength;
2235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case INT_ID: {
2265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            intLength = typeLength;
2275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case LONG_ID: {
2305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            longLength = typeLength;
2315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case SHORT_ID: {
2345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            shortLength = typeLength;
2355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case FLOAT_ID: {
2385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            floatLength = typeLength;
2395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case DOUBLE_ID: {
2425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            doubleLength = typeLength;
2435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case VOID_ID: {
2465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            voidLength = typeLength;
2475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case OBJECT_ID: {
2505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            objectLength = typeLength;
2515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case ARRAY_ID: {
2545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            arrayLength = typeLength;
2555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case STRING_ID: {
2585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            stringLength = typeLength;
2595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case THREAD_ID: {
2625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            threadLength = typeLength;
2635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case THREADGROUP_ID: {
2665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            threadGroupLength = typeLength;
2675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case METHOD_ID: {
2705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            methodLength = typeLength;
2715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case FIELD_ID: {
2745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            fieldLength = typeLength;
2755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case FRAME_ID: {
2785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            frameLength = typeLength;
2795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case LOCATION_ID: {
2825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            locationLength = typeLength;
2835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case REFERENCE_TYPE_ID: {
2865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            referenceLength = typeLength;
2875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case CLASS_ID: {
2905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            classLength = typeLength;
2915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case CLASSLOADER_ID: {
2945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            classLoaderLength = typeLength;
2955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
2965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case CLASSOBJECT_ID: {
2985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            classObjectLength = typeLength;
2995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
3005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
3015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        case CHAR_ID: {
3025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            classObjectLength = charLength;
3035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return;
3045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
3055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        default:
3065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            throw new TestErrorException("Unexpected type ID: " + typeID);
3075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
3085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
3095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes}
310