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 abstract class ByteBase implements ByteBased { 26 private int value; 27 28 protected ByteBase(int value) { 29 this.value = value; 30 } 31 32 protected ByteBase(byte[] data) { 33 this.value = 0; 34 35 for (int i = getLength() - 1; i >= 0; i--) { 36 value += (data[i] & 0xFF) << ((data.length - i - 1) * 8); 37 } 38 } 39 40 public byte[] toByteArray() { 41 byte returnValue[] = new byte[getLength()]; 42 43 int tmp = value; 44 45 for (int i = getLength() - 1; i >= 0; i--) { 46 returnValue[i] = (byte) (tmp & 0xFF); 47 48 tmp = tmp >>> 8; 49 } 50 51 return returnValue; 52 } 53 54 public int getValue() { 55 return value; 56 } 57 }