1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 /** 20 * @author Khen G. Kim 21 */ 22 23 /** 24 * Created on 10.01.2004 25 */ 26 package org.apache.harmony.jpda.tests.framework.jdwp; 27 28 import org.apache.harmony.jpda.tests.framework.jdwp.Packet; 29 30 /** 31 * This class represents JDWP command packet. 32 */ 33 public class CommandPacket extends Packet { 34 private final int COMMAND_SET_INDEX = 9; 35 private final int COMMAND_INDEX = 10; 36 37 private byte command_set; 38 private byte command; 39 40 /** 41 * Creates an empty CommandPacket with empty header and no data. 42 */ CommandPacket()43 public CommandPacket() { 44 super(); 45 } 46 47 /** 48 * Creates an empty CommandPacket for specific JDWP command with no data. 49 */ CommandPacket(byte commandSet, byte command)50 public CommandPacket(byte commandSet, byte command) { 51 super(); 52 this.command_set = commandSet; 53 this.command = command; 54 } 55 56 /** 57 * Creates CommandPacket from given array of bytes including header and data sections. 58 * 59 * @param bytes_array the JDWP packet, given as array of bytes. 60 */ CommandPacket(byte bytes_array[])61 public CommandPacket(byte bytes_array[]) { 62 super(bytes_array); 63 command_set = bytes_array[COMMAND_SET_INDEX]; 64 command = bytes_array[COMMAND_INDEX]; 65 } 66 67 /** 68 * Sets command set value of the header of the CommandPacket as byte. 69 * 70 * @param val the command set. 71 */ setCommandSet(byte val)72 public void setCommandSet(byte val) { 73 command_set = val; 74 } 75 76 /** 77 * Gets command set value of the header of the CommandPacket as byte. 78 * 79 * @return the command set value of the header of the CommandPacket as byte. 80 */ getCommandSet()81 public byte getCommandSet() { 82 return command_set; 83 } 84 85 /** 86 * Sets command value of the header of the CommandPacket as byte. 87 * 88 * @param val the command. 89 */ setCommand(byte val)90 public void setCommand(byte val) { 91 command = val; 92 } 93 94 /** 95 * Sets command value of the header of the CommandPacket as byte. 96 * 97 * @param commandSet number of the command set. 98 * @param command number of the command. 99 */ setCommand(byte commandSet, byte command)100 public void setCommand(byte commandSet, byte command) { 101 this.command_set = commandSet; 102 this.command = command; 103 } 104 105 /** 106 * Gets command value of the header of the CommandPacket as byte. 107 * 108 * @return the command value of the header of the CommandPacket as byte. 109 */ getCommand()110 public byte getCommand() { 111 return command; 112 } 113 114 /** 115 * Gets the representation of the CommandPacket as array of bytes in the 116 * JDWP format including header and data sections. 117 * 118 * @return the representation of the CommandPacket as array of bytes in the 119 * JDWP format. 120 */ 121 @Override toBytesArray()122 public byte[] toBytesArray() { 123 byte res[] = super.toBytesArray(); 124 res[COMMAND_SET_INDEX] = command_set; 125 res[COMMAND_INDEX] = command; 126 return res; 127 } 128 129 }