View Javadoc

1   package org.paneris.bibliomania.fti;
2   
3   import java.io.IOException;
4   import java.io.OutputStream;
5   
6   public class FourPacker extends Packer {
7     public static final FourPacker it = new FourPacker();
8   
9     public FourPacker() {
10      super(4, 0xFFFFFFFF);
11    }
12  
13    public static int number_(byte[] bytes, int off) {
14      return uint(bytes[off + 0]) << 24 | uint(bytes[off + 1]) << 16 |
15             uint(bytes[off + 2]) <<  8 | uint(bytes[off + 3]);
16    }
17  
18    public int number(byte[] bytes, int off) {
19      return number_(bytes, off);
20    }
21  
22    public Packer bigger() {
23      throw new IllegalArgumentException("Numbers have got too big");
24    }
25  
26    public static void write_(OutputStream os, int number) throws IOException {
27      os.write(number >> 24);
28      os.write(number >> 16);
29      os.write(number >>  8);
30      os.write(number      );
31    }
32  
33    public void write(OutputStream os, int number) throws IOException {
34      write_(os, number);
35    }
36  
37    public static void set_(byte[] bytes, int offset, int number) {
38      bytes[offset    ] = (byte)(number >> 24);
39      bytes[offset + 1] = (byte)(number >> 16);
40      bytes[offset + 2] = (byte)(number >>  8);
41      bytes[offset + 3] = (byte) number       ;
42    }
43  
44    public void set(byte[] bytes, int offset, int number) {
45      set_(bytes, offset, number);
46    }
47  }