KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > lucane > applications > administrator > AdministratorService


1 /*
2  * Lucane - a collaborative platform
3  * Copyright (C) 2003 Vincent Fiack <vfiack@mail15.com>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  */

19 package org.lucane.applications.administrator;
20
21
22 import java.util.*;
23
24 import org.lucane.common.*;
25 import org.lucane.common.concepts.*;
26 import org.lucane.common.net.ObjectConnection;
27 import org.lucane.server.*;
28 import org.lucane.server.store.*;
29
30
31 public class AdministratorService
32   extends Service
33 {
34     private Store store;
35     
36   public AdministratorService()
37   {
38   }
39
40   public void init(Server parent)
41   {
42     try {
43         this.store = parent.getStore();
44     } catch(Exception JavaDoc e) {
45         e.printStackTrace();
46     }
47   }
48
49
50   public void process(ObjectConnection oc, Message message)
51   {
52         AdminAction aa = (AdminAction)message.getData();
53         try {
54             switch(aa.action)
55             {
56                 case AdminAction.GET_ALL_GROUPS:
57                     getAllGroups(oc);
58                     break;
59                 case AdminAction.GET_ALL_USERS:
60                     getAllUsers(oc);
61                     break;
62                 case AdminAction.GET_ALL_PLUGINS:
63                     getAllPlugins(oc);
64                     break;
65                 case AdminAction.GET_ALL_SERVICES:
66                     getAllServices(oc);
67                     break;
68                 case AdminAction.GET_AUTHORIZED_PLUGINS:
69                     getAuthorizedPlugins(oc, (UserConcept)aa.param);
70                     break;
71                     
72                 case AdminAction.STORE:
73                     store((Concept)aa.param);
74                     oc.write("OK");
75                     break;
76                 case AdminAction.UPDATE:
77                     update((Concept)aa.param);
78                     oc.write("OK");
79                     break;
80                 case AdminAction.REMOVE:
81                     remove((Concept)aa.param);
82                     oc.write("OK");
83                     break;
84                     
85                 case AdminAction.GET_USERS_FOR:
86                     getUsersFor(oc, (Concept)aa.param);
87                     break;
88             }
89         } catch(Exception JavaDoc e) {
90             try {
91                 oc.write("FAILED " + e);
92             } catch(Exception JavaDoc e2) {}
93             
94             e.printStackTrace();
95         }
96   }
97
98
99   //-- get elements
100

101
102   private void getAllGroups(ObjectConnection oc)
103   {
104     ArrayList groups = new ArrayList();
105
106     try {
107         Iterator i = store.getGroupStore().getAllGroups();
108         while(i.hasNext())
109             groups.add(i.next());
110     } catch(Exception JavaDoc e) {
111         e.printStackTrace();
112     }
113     
114     try {
115         oc.write("OK");
116         oc.write(groups);
117     } catch(Exception JavaDoc e) {
118         e.printStackTrace();
119     }
120   }
121
122   private void getAllUsers(ObjectConnection oc)
123   {
124     ArrayList users = new ArrayList();
125
126     try {
127         Iterator i = store.getUserStore().getAllUsers();
128         while(i.hasNext())
129             users.add(i.next());
130     } catch(Exception JavaDoc e) {
131         e.printStackTrace();
132     }
133         
134     try {
135         oc.write("OK");
136         oc.write(users);
137     } catch(Exception JavaDoc e) {
138         e.printStackTrace();
139     }
140   }
141
142   private void getAllPlugins(ObjectConnection oc)
143   {
144     ArrayList plugins = new ArrayList();
145
146     try {
147         Iterator i = store.getPluginStore().getAllPlugins();
148         while(i.hasNext())
149             plugins.add(i.next());
150     } catch(Exception JavaDoc e) {
151         e.printStackTrace();
152     }
153     
154     try {
155         oc.write("OK");
156         oc.write(plugins);
157     } catch(Exception JavaDoc e) {
158         e.printStackTrace();
159     }
160   }
161   
162   private void getAllServices(ObjectConnection oc)
163   {
164     ArrayList services = new ArrayList();
165
166     try {
167         Iterator i = store.getServiceStore().getAllServices();
168         while(i.hasNext())
169             services.add(i.next());
170     } catch(Exception JavaDoc e) {
171         e.printStackTrace();
172     }
173     
174     try {
175         oc.write("OK");
176         oc.write(services);
177     } catch(Exception JavaDoc e) {
178         e.printStackTrace();
179     }
180   }
181   
182   private void getAuthorizedPlugins(ObjectConnection oc, UserConcept user)
183   {
184     ArrayList plugins = new ArrayList();
185
186     try {
187         Iterator i = store.getPluginStore().getAuthorizedPlugins(user);
188         while(i.hasNext())
189             plugins.add(i.next());
190     } catch(Exception JavaDoc e) {
191         e.printStackTrace();
192     }
193     
194     try {
195         oc.write("OK");
196         oc.write(plugins);
197     } catch(Exception JavaDoc e) {
198         e.printStackTrace();
199     }
200   }
201
202
203   //-- add, update, remove concepts
204

205   private void store(Concept concept)
206   throws Exception JavaDoc
207   {
208     if(concept instanceof GroupConcept)
209         store.getGroupStore().storeGroup((GroupConcept)concept);
210     else if(concept instanceof UserConcept)
211         store.getUserStore().storeUser((UserConcept)concept);
212     else if(concept instanceof PluginConcept)
213         store.getPluginStore().storePlugin((PluginConcept)concept);
214     else if(concept instanceof ServiceConcept)
215         store.getServiceStore().storeService((ServiceConcept)concept);
216   }
217
218   private void update(Concept concept)
219   throws Exception JavaDoc
220   {
221     if(concept instanceof GroupConcept)
222         store.getGroupStore().updateGroup((GroupConcept)concept);
223     else if(concept instanceof UserConcept)
224         store.getUserStore().updateUser((UserConcept)concept);
225     else if(concept instanceof PluginConcept)
226         store.getPluginStore().updatePlugin((PluginConcept)concept);
227     else if(concept instanceof ServiceConcept)
228         store.getServiceStore().updateService((ServiceConcept)concept);
229   }
230
231   private void remove(Concept concept)
232   throws Exception JavaDoc
233   {
234     if(concept instanceof GroupConcept)
235         store.getGroupStore().removeGroup((GroupConcept)concept);
236     else if(concept instanceof UserConcept)
237         store.getUserStore().removeUser((UserConcept)concept);
238     else if(concept instanceof PluginConcept)
239         store.getPluginStore().removePlugin((PluginConcept)concept);
240     else if(concept instanceof ServiceConcept)
241         store.getServiceStore().removeService((ServiceConcept)concept);
242   }
243   
244   //-- get users for a particular concept
245

246   private void getUsersFor(ObjectConnection oc, Concept concept)
247   throws Exception JavaDoc
248   {
249     Iterator i;
250     ArrayList list = new ArrayList();
251     
252     if(concept instanceof GroupConcept)
253         i = store.getGroupStore().getUsersFor((GroupConcept)concept);
254     else if(concept instanceof PluginConcept)
255         i = store.getPluginStore().getUsersFor((PluginConcept)concept);
256     else if(concept instanceof ServiceConcept)
257         i = store.getServiceStore().getUsersFor((ServiceConcept)concept);
258     else
259         i = list.iterator();
260     
261   
262     while(i.hasNext())
263         list.add(i.next());
264     
265     try {
266         oc.write("OK");
267         oc.write(list);
268     } catch(Exception JavaDoc e) {
269         e.printStackTrace();
270     }
271   }
272 }
273
Popular Tags