KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quikj > application > web > talk > client > ApplicationMediaFactory


1 /*
2  * TalkSessionFactory.java
3  *
4  * Created on November 19, 2002, 1:55 AM
5  */

6
7 package com.quikj.application.web.talk.client;
8
9 import java.util.*;
10
11 /**
12  *
13  * @author amit
14  */

15 public class ApplicationMediaFactory
16 {
17     /** Creates a new instance of TalkSessionFactory */
18     private ApplicationMediaFactory()
19     {
20         instance = this;
21     }
22     
23     public static ApplicationMediaFactory getInstance()
24     {
25         if (instance == null)
26         {
27             new ApplicationMediaFactory();
28         }
29         
30         return instance;
31     }
32     
33     public ApplicationMediaInterface createSession(String JavaDoc class_name)
34     {
35         Class JavaDoc app_class = null;
36         try
37         {
38             app_class = Class.forName(class_name);
39         }
40         catch (ClassNotFoundException JavaDoc ex)
41         {
42             return null;
43         }
44         
45         // check if the class implements the PluginAppInterface
46
Class JavaDoc[] interfaces = app_class.getInterfaces();
47         
48         int i = 0;
49         for (i = 0; i < interfaces.length; i++)
50         {
51             if (interfaces[i].getName().equals("com.quikj.application.web.talk.client.ApplicationMediaInterface")
52             == true)
53             {
54                 break;
55             }
56         }
57         
58         if (i == interfaces.length)
59         {
60             // the class does not implement the TalkSessionInterface interface
61
return null;
62         }
63         
64         try
65         {
66             return (ApplicationMediaInterface)app_class.newInstance();
67         }
68         catch (InstantiationException JavaDoc ex1)
69         {
70             return null;
71         }
72         catch (IllegalAccessException JavaDoc ex2)
73         {
74             return null;
75         }
76     }
77     
78     public String JavaDoc getUniqueInstance(TalkSession session)
79     {
80         return session + ":" + (new Date()).getTime() + ":" + random.nextLong();
81     }
82     
83     private static ApplicationMediaFactory instance = null;
84     private Random random = new Random((new Date()).getTime());
85 }
86
Popular Tags