1 ////////////////////////////////////////////////////////////////////////////// 2 // dexterIM - Instant Messaging Framework 3 // Copyright (C) 2003 Christoph Walcher 4 // 5 // This program is free software; you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation; either version 2 of the License, or 8 // (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with this program; if not, write to the Free Software 17 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 ////////////////////////////////////////////////////////////////////////////// 19 package net.sf.dexterim.oscar.entity; 20 21 /*** 22 * @author christoph 23 * TODO Document 24 */ 25 public class VariableByte implements ByteBased { 26 27 private byte[] data; 28 29 /*** 30 * @param value 31 */ 32 public VariableByte(String data) { 33 this.data = data.getBytes(); 34 } 35 36 /*** 37 * @param value 38 */ 39 public VariableByte(byte[] data) { 40 this.data = data; 41 } 42 43 44 /*** 45 * @param value 46 */ 47 public VariableByte(int[] data) { 48 this.data = new byte[data.length]; 49 50 for (int i=0; i<data.length; i++) { 51 this.data[i] = (byte)data[i]; 52 } 53 } 54 55 /* 56 * @see net.sf.dexterim.oscar.entity.ByteBase#getLength() 57 * TODO Document 58 */ 59 public int getLength() { 60 return data.length; 61 } 62 63 /* Copies the array. Unefficient but leaves Type immutable. 64 * @see net.sf.dexterim.oscar.entity.ByteBased#toByteArray() 65 */ 66 public byte[] toByteArray() { 67 byte returnValue[] = new byte[data.length]; 68 69 System.arraycopy(data, 0, returnValue, 0, data.length); 70 71 return returnValue; 72 } 73 74 public String toString() { 75 StringBuffer builder = new StringBuffer(); 76 77 builder.append("[Variable Bytes "); 78 builder.append(new String(this.data)); 79 builder.append("]"); 80 81 return builder.toString(); 82 } 83 }