minimally debugged idFactory and vorbaId mechanism. Inelegant!
[vamsas.git] / src / org / vamsas / client / simpleclient / SimpleClient.java
1 /*
2  * Created on 15-Sep-2005
3  *
4  * TODO To change the template for this generated file go to
5  * Window - Preferences - Java - Code Style - Code Templates
6  */
7 package org.vamsas.client.simpleclient;
8
9 import java.beans.EventHandler;
10 import java.beans.PropertyChangeEvent;
11 import java.beans.PropertyChangeListener;
12 import java.beans.PropertyChangeSupport;
13 import java.io.BufferedReader;
14 import java.io.File;
15 import java.util.Hashtable;
16 import java.util.Vector;
17
18 import org.vamsas.client.ClientHandle;
19 import org.vamsas.client.Events;
20 import org.vamsas.client.IClient;
21 import org.vamsas.client.IClientDocument;
22 import org.vamsas.client.SessionHandle;
23 import org.vamsas.client.UserHandle;
24
25 /**
26  * @author jimp
27  */
28 public class SimpleClient implements IClient {
29
30   UserHandle user = null;
31
32   SessionHandle session = null;
33
34   ClientHandle client = null;
35   
36   /*
37    * (non-Javadoc)
38    * TODO: check that build substitution variables are correct
39    * @see org.vamsas.client.IClient#getAbout()
40    */
41   public String getAbout() {
42     return new String("VORBA SimpleClient version $version$ build $build$");
43   }
44
45   /*
46    * (non-Javadoc)
47    * 
48    * @see org.vamsas.client.IClient#getSessionUrn()
49    */
50   public String getSessionUrn() {
51     return session.getSessionUrn();
52   }
53
54   /*
55    * (non-Javadoc)
56    * 
57    * @see org.vamsas.client.IClient#getSessionHandle()
58    */
59   public SessionHandle getSessionHandle() {
60     return session;
61   }
62
63   /*
64    * (non-Javadoc)
65    * 
66    * @see org.vamsas.client.IClient#getClientHandle()
67    */
68   public ClientHandle getClientHandle() {
69     return client;
70   }
71
72   /*
73    * (non-Javadoc)
74    * 
75    * @see org.vamsas.client.IClient#getUserHandle()
76    */
77   public UserHandle getUserHandle() {
78     return user;
79   }
80
81   private Hashtable handlers = initHandlers();
82
83   private Vector listeners = new Vector();
84
85   /**
86    * make all the PropertyChangeSupport objects for the
87    * events described in org.vamsas.client.Event
88    * @return
89    */
90   private static Hashtable initHandlers() {
91     Hashtable events = new Hashtable();
92     java.util.Iterator evt = Events.EventList.iterator();
93     while (evt.hasNext()) {
94       Object ths = evt.next();
95       events.put(ths, (Object) new PropertyChangeSupport(ths));
96     }
97     return events;
98   }
99
100   /*
101    * (non-Javadoc)
102    * 
103    * @see org.vamsas.client.IClient#addDocumentUpdateHandler(java.util.EventListener)
104    */
105   public void addDocumentUpdateHandler(PropertyChangeListener evt) {
106     if (handlers.containsKey(Events.DOCUMENT_UPDATE)) {
107       Object handler;
108       ((PropertyChangeSupport) (handler = handlers.get(Events.DOCUMENT_UPDATE)))
109           .addPropertyChangeListener(evt);
110       listeners.add(handler);
111       listeners.add((Object) evt);
112     }
113   }
114
115   /*
116    * (non-Javadoc)
117    * 
118    * @see org.vamsas.client.IClient#finalizeClient()
119    */
120   public void finalizeClient() {
121     // TODO: determine if this is last client in session
122     // TODO: raise events like : ((lst_client && document.request.to.close), (client_finalization), (
123     
124     // if (handlers.containsKey(Events.))
125     // if (handlers.containsKey(Events.CLIENT_FINALIZATION))
126     // deregister listeners.
127     // mark this instance as finalized
128   }
129
130   /**
131    * extract data appropriate for client, session and user
132    * from vamsas document.
133    * @return application's byte array
134    */
135   private byte[] getApplicationData() {
136     // TODO: extract correct byte object from Jar and return it to application.
137     return null;
138   }
139
140   /*
141    * (non-Javadoc)
142    * 
143    * @see org.vamsas.client.IClient#getClientDocument()
144    */
145   public IClientDocument getClientDocument() {
146     Object[] vdoc;//  TODO: = getVamsasDocument(new Reader());
147     // ClientDocument cdoc = new ClientDocument(getApplicationData(),
148         // ((VamsasDocument) vdoc[0]).getVAMSAS(), (Hashtable) vdoc[1], this);
149     // 
150     return null;
151   }
152
153   /*
154    * (non-Javadoc)
155    * 
156    * @see org.vamsas.client.IClient#updateDocument(org.vamsas.client.IClientDocument)
157    */
158   public void updateDocument(IClientDocument newdoc) {
159     // TODO Auto-generated method stub
160     // 
161   }
162
163   /*
164    * (non-Javadoc)
165    * 
166    * @see org.vamsas.client.IClient#storeDocument(java.io.File)
167    */
168   public void storeDocument(File location) {
169     // TODO Auto-generated method stub
170
171   }
172
173   /*
174    * (non-Javadoc)
175    * 
176    * @see org.vamsas.client.IClient#addVorbaEventHandler(java.lang.String,
177    *      java.beans.PropertyChangeListener)
178    */
179   public void addVorbaEventHandler(String EventChain, PropertyChangeListener evt) {
180     if (handlers.containsKey(EventChain)) {
181       Object handler;
182       ((PropertyChangeSupport) (handler = handlers.get(EventChain)))
183           .addPropertyChangeListener(evt);
184       listeners.add(handler);
185       listeners.add((Object) evt);
186     }
187   }
188
189   /* (non-Javadoc)
190    * @see org.vamsas.client.IClient#pollUpdate()
191    */
192   public void pollUpdate() {
193     // TODO wake up UpdateWatcher thread to check for updates.
194
195   }
196
197   public static void main(String[] args) {
198   }
199
200   /* (non-Javadoc)
201    * @see org.vamsas.client.IClient#joinSession()
202    */
203   public void joinSession() throws Exception {
204     // TODO Auto-generated method stub
205     
206   }
207 }