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 Alexei S. Vaskin 215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/** 245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Created on 03.05.2005 255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespackage org.apache.harmony.jpda.tests.framework.jdwp; 285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/** 305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * This class provides description of class field. 315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespublic final class Field { 345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private long id; 365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private long classID; 385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private String name; 405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private String signature; 425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private int modBits; 445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private byte tag; 465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Default constructor. 495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public Field() { 515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes id = -1; 525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes classID = -1; 535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes name = "unknown"; 545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes signature = "unknown"; 555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes modBits = -1; 565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Constructor initializing all members of the Field instance. 605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param id 625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * field id 635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param classID 645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * class id 655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param name 665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * field name 675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param signature 685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * signature signature of the field class 695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param modBits 705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * field modifiers 715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public Field(long id, long classID, String name, String signature, 735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes int modBits) { 745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.id = id; 755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.classID = classID; 765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.name = name; 775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.modBits = modBits; 785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes setSignature(signature); 795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Sets signature and detects type tag from it. 835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param signature 855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * signature of the field class 865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private void setSignature(String signature) { 885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes switch (signature.charAt(0)) { 895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case '[': 905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.ARRAY_TAG; 915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'B': 935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.BYTE_TAG; 945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'C': 965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.CHAR_TAG; 975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'L': 995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.OBJECT_TAG; 1005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'F': 1025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.FLOAT_TAG; 1035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'D': 1055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.DOUBLE_TAG; 1065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'I': 1085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.INT_TAG; 1095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'J': 1115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.LONG_TAG; 1125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'S': 1145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.SHORT_TAG; 1155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'V': 1175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.VOID_TAG; 1185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'Z': 1205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.BOOLEAN_TAG; 1215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 's': 1235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.STRING_TAG; 1245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 't': 1265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.THREAD_TAG; 1275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'g': 1295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.THREAD_GROUP_TAG; 1305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'l': 1325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.CLASS_LOADER_TAG; 1335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'c': 1355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes tag = JDWPConstants.Tag.CLASS_OBJECT_TAG; 1365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 1375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.signature = signature; 1405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Gets field id. 1445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return long 1465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public long getID() { 1485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return this.id; 1495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Gets id of the field reference type. 1535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return long 1555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public long getClassID() { 1575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return classID; 1585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Gets field name. 1625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return String 1645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public String getName() { 1665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return name; 1675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Gets signature of field type. 1715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return String 1735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public String getSignature() { 1755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return signature; 1765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Gets field modifiers. 1805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return int 1825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public int getModBits() { 1845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return modBits; 1855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Gets field java type. 1895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return String 1915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public String getType() { 1935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes String type = "unknown type"; 1945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes switch (tag) { 1955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.ARRAY_TAG: 1965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes switch (signature.charAt(1)) { 1975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'B': 1985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "byte[]"; 1995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'C': 2015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "char[]"; 2025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'J': 2045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "long[]"; 2055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'F': 2075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "float[]"; 2085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'D': 2105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "double[]"; 2115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'I': 2135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "int[]"; 2145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'S': 2165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "short[]"; 2175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'V': 2195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "void[]"; 2205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'Z': 2225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "boolean[]"; 2235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 's': 2255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "java.Lang.String[]"; 2265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case 'L': 2285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = signature 2295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .substring(2, signature.length() - 1 /* 2305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * skip ending 2315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * ';' 2325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */) 2335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .replaceAll("/", ".") 2345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + "[]"; // skip ending ';' 2355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.OBJECT_TAG: 2395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = signature 2405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .substring(1, signature.length() - 1 /* skip ending ';' */) 2415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .replaceAll("/", "."); // skip ending ';' 2425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.BOOLEAN_TAG: 2445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "boolean"; 2455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.BYTE_TAG: 2475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "byte"; 2485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.CHAR_TAG: 2505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "char"; 2515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.DOUBLE_TAG: 2535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "double"; 2545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.FLOAT_TAG: 2565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "float"; 2575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.INT_TAG: 2595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "int"; 2605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.LONG_TAG: 2625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "long"; 2635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.SHORT_TAG: 2655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "short"; 2665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.Tag.STRING_TAG: 2685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes type = "string"; 2695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes default: 2715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 2725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return type; 2755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Compares two Field objects. 2795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 2805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @see java.lang.Object#equals(java.lang.Object) 2815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return boolean 2825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public boolean equals(Object obj) { 2845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if (!(obj instanceof Field)) { 2855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return false; 2865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if (this.getClass() != obj.getClass()) { 2895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return false; 2905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes Field field = (Field) obj; 2935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return this.id == field.id && this.classID == field.classID 2945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes && this.name.equals(field.name) 2955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes && this.signature.equals(field.signature) 2965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes && this.modBits == field.modBits; 2975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Converts Field object to String. 3015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @see java.lang.Object#toString() 3035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return String 3045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public String toString() { 3065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes String str = "Field: id=" + id + ", classID=" + classID + ", name='" 3075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + name + "', signature='" + signature + "', modBits="; 3085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes String access = ""; 3095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ((this.modBits & JDWPConstants.FieldAccess.ACC_PRIVATE) == JDWPConstants.FieldAccess.ACC_PRIVATE) { 3105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes access += JDWPConstants.FieldAccess 3115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .getName(JDWPConstants.FieldAccess.ACC_PRIVATE) 3125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + " "; 3135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } else if ((this.modBits & JDWPConstants.FieldAccess.ACC_PROTECTED) == JDWPConstants.FieldAccess.ACC_PROTECTED) { 3145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes access += JDWPConstants.FieldAccess 3155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .getName(JDWPConstants.FieldAccess.ACC_PROTECTED) 3165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + " "; 3175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } else if ((this.modBits & JDWPConstants.FieldAccess.ACC_PUBLIC) == JDWPConstants.FieldAccess.ACC_PUBLIC) { 3185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes access += JDWPConstants.FieldAccess 3195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .getName(JDWPConstants.FieldAccess.ACC_PUBLIC) 3205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + " "; 3215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ((this.modBits & JDWPConstants.FieldAccess.ACC_FINAL) == JDWPConstants.FieldAccess.ACC_FINAL) { 3235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes access += JDWPConstants.FieldAccess 3245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .getName(JDWPConstants.FieldAccess.ACC_FINAL) 3255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + " "; 3265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ((this.modBits & JDWPConstants.FieldAccess.ACC_STATIC) == JDWPConstants.FieldAccess.ACC_STATIC) { 3285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes access += JDWPConstants.FieldAccess 3295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .getName(JDWPConstants.FieldAccess.ACC_STATIC) 3305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + " "; 3315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ((this.modBits & JDWPConstants.FieldAccess.ACC_TRANSIENT) == JDWPConstants.FieldAccess.ACC_TRANSIENT) { 3335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes access += JDWPConstants.FieldAccess 3345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .getName(JDWPConstants.FieldAccess.ACC_TRANSIENT) 3355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + " "; 3365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes if ((this.modBits & JDWPConstants.FieldAccess.ACC_VOLATILE) == JDWPConstants.FieldAccess.ACC_VOLATILE) { 3385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes access += JDWPConstants.FieldAccess 3395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes .getName(JDWPConstants.FieldAccess.ACC_VOLATILE) 3405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + " "; 3415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return str + access; 3445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Tells whether this field is private. 3485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return boolean 3505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public boolean isPrivate() { 3525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return (modBits & JDWPConstants.FieldAccess.ACC_PRIVATE) == JDWPConstants.FieldAccess.ACC_PRIVATE; 3535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Tells whether this field is protected. 3575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return boolean 3595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public boolean isProtected() { 3615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return (modBits & JDWPConstants.FieldAccess.ACC_PROTECTED) == JDWPConstants.FieldAccess.ACC_PROTECTED; 3625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Tells whether this field is public. 3665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return boolean 3685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public boolean isPublic() { 3705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return (modBits & JDWPConstants.FieldAccess.ACC_PUBLIC) == JDWPConstants.FieldAccess.ACC_PUBLIC; 3715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Tells whether this field is final. 3755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return boolean 3775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public boolean isFinal() { 3795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return (modBits & JDWPConstants.FieldAccess.ACC_FINAL) == JDWPConstants.FieldAccess.ACC_FINAL; 3805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Tells whether this field is static. 3845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return boolean 3865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public boolean isStatic() { 3885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return (modBits & JDWPConstants.FieldAccess.ACC_STATIC) == JDWPConstants.FieldAccess.ACC_STATIC; 3895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes} 391