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 }