KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > ubik > test > TestUtils


1 package org.sapia.ubik.test;
2
3 import org.sapia.ubik.rmi.server.Stub;
4
5 import java.io.ByteArrayInputStream JavaDoc;
6 import java.io.ByteArrayOutputStream JavaDoc;
7 import java.io.IOException JavaDoc;
8 import java.io.ObjectInputStream JavaDoc;
9 import java.io.ObjectOutputStream JavaDoc;
10
11 import java.util.HashSet JavaDoc;
12 import java.util.Set JavaDoc;
13
14
15 /**
16  * @author Yanick Duchesne
17  * 15-Sep-2003
18  */

19 public class TestUtils {
20   /**
21    * Constructor for TestUtils.
22    */

23   public TestUtils() {
24     super();
25   }
26
27   public static Object JavaDoc deserialize(byte[] bytes)
28     throws IOException JavaDoc, ClassNotFoundException JavaDoc {
29     ObjectInputStream JavaDoc ois = new ObjectInputStream JavaDoc(new ByteArrayInputStream JavaDoc(
30           bytes));
31     Object JavaDoc o = ois.readObject();
32
33     return o;
34   }
35
36   public static byte[] serialize(Object JavaDoc o) throws IOException JavaDoc {
37     ByteArrayOutputStream JavaDoc bos = new ByteArrayOutputStream JavaDoc();
38     ObjectOutputStream JavaDoc ous = new ObjectOutputStream JavaDoc(bos);
39     ous.writeObject(o);
40     ous.flush();
41     ous.close();
42
43     return bos.toByteArray();
44   }
45
46   public static Class JavaDoc[] getInterfacesFor(Class JavaDoc clazz) {
47     HashSet JavaDoc set = new HashSet JavaDoc();
48     Class JavaDoc current = clazz;
49     appendInterfaces(current, set);
50     set.add(Stub.class);
51
52     return (Class JavaDoc[]) set.toArray(new Class JavaDoc[set.size()]);
53   }
54
55   private static void appendInterfaces(Class JavaDoc current, Set JavaDoc interfaces) {
56     Class JavaDoc[] ifs = current.getInterfaces();
57
58     for (int i = 0; i < ifs.length; i++) {
59       appendInterfaces(ifs[i], interfaces);
60       interfaces.add(ifs[i]);
61     }
62
63     current = current.getSuperclass();
64
65     if (current != null) {
66       appendInterfaces(current, interfaces);
67     }
68   }
69 }
70
Popular Tags