View Javadoc
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  }