1 package org.freehep.graphicsio.emf;
2
3 import java.util.BitSet;
4
5
6
7
8
9
10
11 public class EMFHandleManager {
12 private BitSet handles = new BitSet();
13
14 private int maxHandle;
15
16 public int getHandle() {
17 int handle = nextClearBit();
18 handles.set(handle);
19 if (handle > maxHandle)
20 maxHandle = handle;
21 return handle;
22 }
23
24 public int freeHandle(int handle) {
25 handles.clear(handle);
26 return handle;
27 }
28
29 private int nextClearBit() {
30
31 for (int i = 1;; i++)
32 if (!handles.get(i))
33 return i;
34 }
35
36 public int highestHandleInUse() {
37 return handles.length() - 1;
38 }
39
40 public int maxHandlesUsed() {
41 return maxHandle + 1;
42 }
43 }