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 10.25.2004
255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespackage org.apache.harmony.jpda.tests.framework.jdwp;
275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/**
295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * This class defines various constants from JDWP specifications.
305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Each class has getName function to convert a constant value
315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * to string equivalent.
325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */
335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespublic class JDWPConstants {
345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP ThreadStatus constants
375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class ThreadStatus {
395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte ZOMBIE = 0;
415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte RUNNING = 1;
435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte SLEEPING = 2;
455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte MONITOR = 3;
475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte WAIT = 4;
495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param status
545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(int status) {
585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch (status) {
595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ZOMBIE:
605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ZOMBIE";
615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case RUNNING:
625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "RUNNING";
635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case SLEEPING:
645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "SLEEPING";
655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case MONITOR:
665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "MONITOR";
675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case WAIT:
685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "WAIT";
695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            default:
705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "<unknown>";
715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP SuspendStatus constants
775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class SuspendStatus {
795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte SUSPEND_STATUS_SUSPENDED = 1;
815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param status
865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(int status) {
905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if (status == SUSPEND_STATUS_SUSPENDED)
915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "SUSPENDED";
925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return "NONE";
935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP ClassStatus constants
985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class ClassStatus {
1005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte VERIFIED = 1;
1025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte PREPARED = 2;
1045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte INITIALIZED = 4;
1065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte ERROR = 8;
1085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        // it looks like JDWP spec becomes out of date
1105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        // see JVMTI specification for GetClassStatus:
1115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        //
1125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte ARRAY = 16;
1135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte PRIMITIVE = 32;
1155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
1175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
1185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
1195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param status
1205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
1215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
1225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
1235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(int status) {
1245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            String returnValue = "";
1265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if ((status & VERIFIED) == VERIFIED)
1275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                returnValue += "|VERIFIED";
1285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if ((status & PREPARED) == PREPARED)
1295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                returnValue += "|PREPARED";
1305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if ((status & INITIALIZED) == INITIALIZED)
1315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                returnValue += "|INITIALIZED";
1325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if ((status & ERROR) == ERROR)
1335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                returnValue += "|ERROR";
1345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if ((status & ARRAY) == ARRAY)
1355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                returnValue += "|ARRAY";
1365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if ((status & PRIMITIVE) == PRIMITIVE)
1375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                returnValue += "|PRIMITIVE";
1385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if (returnValue.equals("")) {
1405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                returnValue = "NONE";
1415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            } else {
1425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                returnValue = returnValue.substring(1);
1435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
1445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return returnValue;
1465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
1485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
1505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP TypeTag constants
1515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
1525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class TypeTag {
1535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte CLASS = 1;
1555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte INTERFACE = 2;
1575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte ARRAY = 3;
1595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
1615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
1625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
1635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param refTypeTag
1645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
1655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
1665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
1675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(byte refTypeTag) {
1685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch (refTypeTag) {
1695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CLASS:
1705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CLASS";
1715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INTERFACE:
1725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INTERFACE";
1735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ARRAY:
1745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ARRAY";
1755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            default:
1765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "<unknown>";
1775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
1785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
1795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
1805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
1825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP Tag constants
1835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
1845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class Tag {
1855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte ARRAY_TAG = 91;
1875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte BYTE_TAG = 66;
1895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte CHAR_TAG = 67;
1915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte OBJECT_TAG = 76;
1935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte FLOAT_TAG = 70;
1955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte DOUBLE_TAG = 68;
1975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
1985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte INT_TAG = 73;
1995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte LONG_TAG = 74;
2015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte SHORT_TAG = 83;
2035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte VOID_TAG = 86;
2055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte BOOLEAN_TAG = 90;
2075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte STRING_TAG = 115;
2095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte THREAD_TAG = 116;
2115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte THREAD_GROUP_TAG = 103;
2135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte CLASS_LOADER_TAG = 108;
2155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte CLASS_OBJECT_TAG = 99;
2175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte NO_TAG = 0;
2195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
2215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
2225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
2235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param tag
2245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
2255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
2265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
2275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(byte tag) {
2285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch (tag) {
2295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ARRAY_TAG:
2305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ARRAY_TAG";
2315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case BYTE_TAG:
2325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "BYTE_TAG";
2335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CHAR_TAG:
2345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CHAR_TAG";
2355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case OBJECT_TAG:
2365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "OBJECT_TAG";
2375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case FLOAT_TAG:
2385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "FLOAT_TAG";
2395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case DOUBLE_TAG:
2405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "DOUBLE_TAG";
2415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INT_TAG:
2425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INT_TAG";
2435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case LONG_TAG:
2445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "LONG_TAG";
2455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case SHORT_TAG:
2465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "SHORT_TAG";
2475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case VOID_TAG:
2485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "VOID_TAG";
2495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case BOOLEAN_TAG:
2505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "BOOLEAN_TAG";
2515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case STRING_TAG:
2525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "STRING_TAG";
2535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case THREAD_TAG:
2545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "THREAD_TAG";
2555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case THREAD_GROUP_TAG:
2565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "THREAD_GROUP_TAG";
2575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CLASS_LOADER_TAG:
2585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CLASS_LOADER_TAG";
2595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CLASS_OBJECT_TAG:
2605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CLASS_OBJECT_TAG";
2615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NO_TAG:
2625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NO_TAG";
2635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            default:
2645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "<unknown>";
2655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
2665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
2675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
2685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
2705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP EventKind constants
2715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
2725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class EventKind {
2735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte SINGLE_STEP = 1;
2755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte BREAKPOINT = 2;
2775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte FRAME_POP = 3;
2795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte EXCEPTION = 4;
2815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte USER_DEFINED = 5;
2835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte THREAD_START = 6;
2855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte THREAD_END = 7;
2875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte THREAD_DEATH = THREAD_END;
2895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte CLASS_PREPARE = 8;
2915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte CLASS_UNLOAD = 9;
2935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte CLASS_LOAD = 10;
2955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte FIELD_ACCESS = 20;
2975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
2985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte FIELD_MODIFICATION = 21;
2995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte EXCEPTION_CATCH = 30;
3015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte METHOD_ENTRY = 40;
3035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte METHOD_EXIT = 41;
3055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        // METHOD_EXIT_WITH_RETURN_VALUE
3075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        // MONITOR_CONTENDED_ENTER,MONITOR_CONTENDED_ENTER
3085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        // MONITOR_WAIT, MONITOR_WAITED are new events for Java 6
3095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte METHOD_EXIT_WITH_RETURN_VALUE = 42;
3105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte MONITOR_CONTENDED_ENTER = 43;
3125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte MONITOR_CONTENDED_ENTERED = 44;
3145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte MONITOR_WAIT = 45;
3165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte MONITOR_WAITED = 46;
3185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte VM_INIT = 90;
3205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte VM_START = VM_INIT;
3225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte VM_DEATH = 99;
3245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte VM_DISCONNECTED = 100;
3265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
3285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
3295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
3305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param eventKind
3315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
3325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
3335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
3345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(byte eventKind) {
3355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch (eventKind) {
3365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case SINGLE_STEP:
3375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "SINGLE_STEP";
3385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case BREAKPOINT:
3395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "BREAKPOINT";
3405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case FRAME_POP:
3415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "FRAME_POP";
3425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case EXCEPTION:
3435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "EXCEPTION";
3445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case USER_DEFINED:
3455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "USER_DEFINED";
3465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case THREAD_START:
3475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "THREAD_START";
3485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case THREAD_END:
3495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "THREAD_END";
3505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CLASS_PREPARE:
3515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CLASS_PREPARE";
3525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CLASS_UNLOAD:
3535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CLASS_UNLOAD";
3545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CLASS_LOAD:
3555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CLASS_LOAD";
3565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case FIELD_ACCESS:
3575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "FIELD_ACCESS";
3585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case FIELD_MODIFICATION:
3595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "FIELD_MODIFICATION";
3605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case EXCEPTION_CATCH:
3615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "EXCEPTION_CATCH";
3625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case METHOD_ENTRY:
3635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "METHOD_ENTRY";
3645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case METHOD_EXIT:
3655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "METHOD_EXIT";
3665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case METHOD_EXIT_WITH_RETURN_VALUE:
3675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "METHOD_EXIT_WITH_RETURN_VALUE";
3685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case MONITOR_CONTENDED_ENTER:
3695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "MONITOR_CONTENDED_ENTER";
3705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case MONITOR_CONTENDED_ENTERED:
3715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "MONITOR_CONTENDED_ENTERED";
3725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case MONITOR_WAIT:
3735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "MONITOR_WAIT";
3745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case MONITOR_WAITED:
3755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "MONITOR_WAITED";
3765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case VM_INIT:
3775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "VM_INIT";
3785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case VM_DEATH:
3795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "VM_DEATH";
3805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case VM_DISCONNECTED:
3815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "VM_DISCONNECTED";
3825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            default:
3835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "<unknown>";
3845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
3855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
3865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
3875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
3895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP Error constants
3905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
3915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class Error {
3925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int NONE = 0;
3945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_THREAD = 10;
3965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_THREAD_GROUP = 11;
3985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
3995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_PRIORITY = 12;
4005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int THREAD_NOT_SUSPENDED = 13;
4025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int THREAD_SUSPENDED = 14;
4045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
405d37f4b603e2e5f5a9139f97fcd9f8c41fa6d0d3fElliott Hughes        public static final int THREAD_NOT_ALIVE = 15;
406d37f4b603e2e5f5a9139f97fcd9f8c41fa6d0d3fElliott Hughes
4075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_OBJECT = 20;
4085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_CLASS = 21;
4105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int CLASS_NOT_PREPARED = 22;
4125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_METHODID = 23;
4145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_LOCATION = 24;
4165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_FIELDID = 25;
4185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_FRAMEID = 30;
4205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int NO_MORE_FRAMES = 31;
4225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int OPAQUE_FRAME = 32;
4245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int NOT_CURRENT_FRAME = 33;
4265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int TYPE_MISMATCH = 34;
4285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_SLOT = 35;
4305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int DUPLICATE = 40;
4325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int NOT_FOUND = 41;
4345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_MONITOR = 50;
4365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int NOT_MONITOR_OWNER = 51;
4385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INTERRUPT = 52;
4405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_CLASS_FORMAT = 60;
4425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int CIRCULAR_CLASS_DEFENITION = 61;
4445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int FAILS_VERIFICATION = 62;
4465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ADD_METHOD_NOT_IMPLEMENTED = 63;
4485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int SCHEMA_CHANGE_NOT_IMPLEMENTED = 64;
4505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_TYPESTATE = 65;
4525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int HIERARCHY_CHANGE_NOT_IMPLEMENTED = 66;
4545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int DELETE_METHOD_NOT_IMPLEMENTED = 67;
4565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int UNSUPPORTED_VERSION = 68;
4585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int NAMES_DONT_MATCH = 69;
4605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED = 70;
4625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED = 71;
4645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int NOT_IMPLEMENTED = 99;
4665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int NULL_POINTER = 100;
4685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ABSENT_INFORMATION = 101;
4705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_EVENT_TYPE = 102;
4725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ILLEGAL_ARGUMENT = 103;
4745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int OUT_OF_MEMORY = 110;
4765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ACCESS_DENIED = 111;
4785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int VM_DEAD = 112;
4805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INTERNAL = 113;
4825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int UNATTACHED_THREAD = 115;
4845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_TAG = 500;
4865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ALREADY_INVOKING = 502;
4885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_INDEX = 503;
4905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_LENGTH = 504;
4925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_STRING = 506;
4945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_CLASS_LOADER = 507;
4965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_ARRAY = 508;
4985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
4995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int TRANSPORT_LOAD = 509;
5005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
5015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int TRANSPORT_INIT = 510;
5025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
5035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int NATIVE_METHOD = 511;
5045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
5055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int INVALID_COUNT = 512;
5065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
5075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
5085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
5095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
5105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param errorCode
5115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
5125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
5135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
5145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(int errorCode) {
5155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch (errorCode) {
5165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NONE:
5175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NONE";
5185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_THREAD:
5195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_THREAD";
5205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_THREAD_GROUP:
5215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_THREAD_GROUP";
5225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_PRIORITY:
5235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_PRIORITY";
5245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case THREAD_NOT_SUSPENDED:
5255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "THREAD_NOT_SUSPENDED";
5265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case THREAD_SUSPENDED:
5275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "THREAD_SUSPENDED";
528d37f4b603e2e5f5a9139f97fcd9f8c41fa6d0d3fElliott Hughes            case THREAD_NOT_ALIVE:
529d37f4b603e2e5f5a9139f97fcd9f8c41fa6d0d3fElliott Hughes                return "THREAD_NOT_ALIVE";
5305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_OBJECT:
5315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_OBJECT";
5325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_CLASS:
5335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_CLASS";
5345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CLASS_NOT_PREPARED:
5355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CLASS_NOT_PREPARED";
5365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_METHODID:
5375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_METHODID";
5385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_LOCATION:
5395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_LOCATION";
5405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_FIELDID:
5415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_FIELDID";
5425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_FRAMEID:
5435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_FRAMEID";
5445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NO_MORE_FRAMES:
5455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NO_MORE_FRAMES";
5465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case OPAQUE_FRAME:
5475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "OPAQUE_FRAME";
5485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NOT_CURRENT_FRAME:
5495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NOT_CURRENT_FRAME";
5505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case TYPE_MISMATCH:
5515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "TYPE_MISMATCH";
5525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_SLOT:
5535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_SLOT";
5545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case DUPLICATE:
5555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "DUPLICATE";
5565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NOT_FOUND:
5575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NOT_FOUND";
5585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_MONITOR:
5595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_MONITOR";
5605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NOT_MONITOR_OWNER:
5615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NOT_MONITOR_OWNER";
5625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INTERRUPT:
5635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INTERRUPT";
5645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_CLASS_FORMAT:
5655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_CLASS_FORMAT";
5665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CIRCULAR_CLASS_DEFENITION:
5675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CIRCULAR_CLASS_DEFENITION";
5685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case FAILS_VERIFICATION:
5695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "FAILS_VERIFICATION";
5705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ADD_METHOD_NOT_IMPLEMENTED:
5715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ADD_METHOD_NOT_IMPLEMENTED";
5725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case SCHEMA_CHANGE_NOT_IMPLEMENTED:
5735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "SCHEMA_CHANGE_NOT_IMPLEMENTED";
5745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_TYPESTATE:
5755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_TYPESTATE";
5765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case HIERARCHY_CHANGE_NOT_IMPLEMENTED:
5775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "HIERARCHY_CHANGE_NOT_IMPLEMENTED";
5785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case DELETE_METHOD_NOT_IMPLEMENTED:
5795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "DELETE_METHOD_NOT_IMPLEMENTED";
5805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case UNSUPPORTED_VERSION:
5815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "UNSUPPORTED_VERSION";
5825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NAMES_DONT_MATCH:
5835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NAMES_DONT_MATCH";
5845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED:
5855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "CLASS_MODIFIERS_CHANGE_NOT_IMPLEMENTED";
5865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED:
5875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "METHOD_MODIFIERS_CHANGE_NOT_IMPLEMENTED";
5885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NOT_IMPLEMENTED:
5895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NOT_IMPLEMENTED";
5905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NULL_POINTER:
5915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NULL_POINTER";
5925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ABSENT_INFORMATION:
5935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ABSENT_INFORMATION";
5945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_EVENT_TYPE:
5955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_EVENT_TYPE";
5965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ILLEGAL_ARGUMENT:
5975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ILLEGAL_ARGUMENT";
5985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case OUT_OF_MEMORY:
5995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "OUT_OF_MEMORY";
6005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ACCESS_DENIED:
6015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ACCESS_DENIED";
6025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case VM_DEAD:
6035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "VM_DEAD";
6045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INTERNAL:
6055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INTERNAL";
6065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case UNATTACHED_THREAD:
6075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "UNATTACHED_THREAD";
6085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_TAG:
6095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_TAG";
6105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ALREADY_INVOKING:
6115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ALREADY_INVOKING";
6125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_INDEX:
6135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_INDEX";
6145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_LENGTH:
6155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_LENGTH";
6165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_STRING:
6175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_STRING";
6185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_CLASS_LOADER:
6195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_CLASS_LOADER";
6205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_ARRAY:
6215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_ARRAY";
6225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case TRANSPORT_LOAD:
6235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "TRANSPORT_LOAD";
6245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case TRANSPORT_INIT:
6255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "TRANSPORT_INIT";
6265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NATIVE_METHOD:
6275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NATIVE_METHOD";
6285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INVALID_COUNT:
6295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INVALID_COUNT";
6305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            default:
6315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "<unknown>";
6325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
6335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
6345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
6355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
6375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP StepDepth constants
6385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
6395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class StepDepth {
6405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte INTO = 0;
6425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte OVER = 1;
6445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte OUT = 2;
6465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
6485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
6495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
6505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param code
6515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
6525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
6535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
6545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(int code) {
6555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch (code) {
6565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case INTO:
6575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "INTO";
6585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case OVER:
6595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "OVER";
6605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case OUT:
6615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "OUT";
6625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            default:
6635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "<unknown>";
6645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
6655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
6665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
6675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
6695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP StepSize constants
6705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
6715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class StepSize {
6725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte MIN = 0;
6745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte LINE = 1;
6765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
6785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
6795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
6805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param code
6815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
6825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
6835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
6845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(int code) {
6855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch (code) {
6865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case MIN:
6875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "MIN";
6885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case LINE:
6895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "LINE";
6905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            default:
6915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "<unknown>";
6925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
6935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
6945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
6955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
6965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
6975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP SuspendPolicy constants
6985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
6995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class SuspendPolicy {
7005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte NONE = 0;
7025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte EVENT_THREAD = 1;
7045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte ALL = 2;
7065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
7085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
7095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
7105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param code
7115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
7125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
7135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
7145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(int code) {
7155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch (code) {
7165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case NONE:
7175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "NONE";
7185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case EVENT_THREAD:
7195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "EVENT_THREAD";
7205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ALL:
7215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ALL";
7225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            default:
7235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "<unknown>";
7245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
7255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
7265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
7275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
7295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * JDWP InvokeOptions constants
7305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
7315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class InvokeOptions {
7325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte INVOKE_SINGLE_THREADED = 0x01;
7335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final byte INVOKE_NONVIRTUAL = 0x02;
7355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
7375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
7385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
7395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param code
7405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
7415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
7425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
7435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(int code) {
7445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            String buf = "NONE";
7455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if ((code & INVOKE_SINGLE_THREADED) != 0) {
7465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                buf += "|INVOKE_SINGLE_THREADED";
7475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
7485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if ((code & INVOKE_NONVIRTUAL) != 0) {
7495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                buf += "|INVOKE_NONVIRTUAL";
7505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
7515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            if ((code & ~(INVOKE_SINGLE_THREADED | INVOKE_NONVIRTUAL)) != 0) {
7525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                buf += "|<unknown>";
7535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
7545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            return buf;
7555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
7565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
7575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    /**
7595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     * Field access flags
7605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes     */
7615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    public static class FieldAccess {
7625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
7645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Is public; may be accessed from outside its package; Any field.
7655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
7665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ACC_PUBLIC = 0x0001;
7675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
7695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Is private; usable only within the defining class; Class field.
7705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
7715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ACC_PRIVATE = 0x0002;
7725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
7745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Is protected; may be accessed within subclasses; Class field.
7755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
7765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ACC_PROTECTED = 0x0004;
7775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
7795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Is static; Any field.
7805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
7815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ACC_STATIC = 0x0008;
7825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
7845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Is final; no further overriding or assignment after initialization;
7855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Any field.
7865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
7875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ACC_FINAL = 0x0010;
7885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
7905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Is volatile; cannot be cached; Class field.
7915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
7925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ACC_VOLATILE = 0x0040;
7935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
7945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
7955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Is transient; not written or read by a persistent object manager;
7965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Class field.
7975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
7985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static final int ACC_TRANSIENT = 0x0080;
7995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes
8005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        /**
8015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * Gets name for corresponding constant value.
8025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *
8035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @param code
8045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         *            a constant from ones declared in this class
8055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         * @return String
8065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes         */
8075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        public static String getName(int code) {
8085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            switch (code) {
8095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ACC_PUBLIC:
8105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ACC_PUBLIC";
8115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ACC_PRIVATE:
8125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ACC_PRIVATE";
8135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ACC_PROTECTED:
8145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ACC_PROTECTED";
8155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ACC_STATIC:
8165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ACC_STATIC";
8175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ACC_FINAL:
8185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ACC_FINAL";
8195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ACC_VOLATILE:
8205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ACC_VOLATILE";
8215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            case ACC_TRANSIENT:
8225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "ACC_TRANSIENT";
8235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            default:
8245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes                return "<unknown>";
8255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes            }
8265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes        }
8275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes    }
8285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes}
829