View Javadoc

1   package net.sf.dexterim.oscar.client;
2   
3   import java.util.Random;
4   
5   /***
6    * @author christoph
7    *
8    */
9   public class FlapSequencer {
10    private static FlapSequencer instance;
11    private static final int BOUNDS = 0x0800;
12  
13    private int id;
14  
15    protected FlapSequencer() {
16      this.id = first();
17    }
18    
19    public int next() {
20      if (++id >= BOUNDS) {
21        id = reset();
22      }
23  
24      return id;
25    }
26  
27    public int current() {
28      return id;
29    }
30  
31    protected final int first() {
32      Random rand = new Random();
33      return rand.nextInt(BOUNDS);
34    }
35    
36    protected int reset() {
37      return 0;
38    } 
39     
40    public static synchronized FlapSequencer getInstance() {
41      if (instance == null) {
42        instance = new FlapSequencer();
43      }
44  
45      return instance;
46    }
47  }