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 /***
23 * @author christoph
24 * TODO: Message toByteArray contains duplicate code (copied from ByteBase)
25 */
26 public class QWord implements ByteBased {
27 private long value;
28
29 public QWord(long value) {
30 this.value = value;
31 }
32
33 public QWord() {
34 this(0);
35 }
36
37 /***
38 * @see net.sf.dexterim.oscar.entity.ByteBased#getLength()
39 */
40 public int getLength() {
41 return 8;
42 }
43
44 /***
45 * Returns the value as long
46 * @return
47 */
48 public long getValue() {
49 return value;
50 }
51
52 /***
53 * @see net.sf.dexterim.oscar.entity.ByteBased#toByteArray()
54 */
55 public byte[] toByteArray() {
56 byte returnValue[] = new byte[getLength()];
57
58 long tmp = value;
59
60 for (int i = getLength() - 1; i >= 0; i--) {
61 returnValue[i] = (byte) (tmp & 0xFF);
62
63 tmp = tmp >>> 8;
64 }
65
66 return returnValue;
67 }
68 }