KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > applications > packaging > providerhandlers > gui > Controller


1 /*
2  * This software is OSI Certified Open Source Software.
3  * OSI Certified is a certification mark of the Open Source Initiative.
4  * The license (Mozilla version 1.0) can be read at the MMBase site.
5  * See http://www.MMBase.org/license
6  */

7 package org.mmbase.applications.packaging.providerhandlers.gui;
8
9 import java.util.ArrayList JavaDoc;
10 import java.util.HashMap JavaDoc;
11 import java.util.Iterator JavaDoc;
12 import java.util.List JavaDoc;
13
14 import org.mmbase.applications.packaging.InstallManager;
15 import org.mmbase.applications.packaging.ProviderManager;
16 import org.mmbase.applications.packaging.providerhandlers.HttpProvider;
17 import org.mmbase.applications.packaging.providerhandlers.ProviderInterface;
18 import org.mmbase.bridge.Cloud;
19 import org.mmbase.bridge.CloudContext;
20 import org.mmbase.bridge.LocalContext;
21 import org.mmbase.bridge.NodeManager;
22 import org.mmbase.module.core.MMBase;
23 import org.mmbase.module.core.MMObjectNode;
24 import org.mmbase.module.core.VirtualBuilder;
25 import org.mmbase.util.logging.Logger;
26 import org.mmbase.util.logging.Logging;
27
28 /**
29  * @author Daniel Ockeloen
30  * @version $Id: guiController.java
31  */

32 public class Controller {
33
34     private static Logger log = Logging.getLoggerInstance(Controller.class);
35     private static Cloud cloud;
36     NodeManager manager;
37     CloudContext context;
38
39
40     /**
41      *Constructor for the Controller object
42      */

43     public Controller() {
44         cloud = LocalContext.getCloudContext().getCloud("mmbase");
45
46         // hack needs to be solved
47
manager = cloud.getNodeManager("typedef");
48         if (manager == null) {
49             log.error("Can't access builder typedef");
50         }
51         context = LocalContext.getCloudContext();
52         if (!InstallManager.isRunning()) {
53             InstallManager.init();
54         }
55     }
56
57
58     /**
59      * Gets the providerHandlers attribute of the Controller object
60      *
61      * @return The providerHandlers value
62      */

63     public List JavaDoc getProviderHandlers() {
64         // get the current provider handlers we have installed
65
HashMap JavaDoc providerhandlers = ProviderManager.getProviderHandlers();
66
67         // create a result list
68
List JavaDoc list = new ArrayList JavaDoc();
69         VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase());
70
71         Iterator JavaDoc e = providerhandlers.keySet().iterator();
72         while (e.hasNext()) {
73             String JavaDoc key = (String JavaDoc) e.next();
74             String JavaDoc value = (String JavaDoc) providerhandlers.get(key);
75
76             MMObjectNode virtual = builder.getNewNode("admin");
77             virtual.setValue("name", key);
78             virtual.setValue("value", value);
79             list.add(virtual);
80         }
81         return list;
82     }
83
84
85     /**
86      * Description of the Method
87      *
88      * @param name Description of the Parameter
89      * @param maintainer Description of the Parameter
90      * @param account Description of the Parameter
91      * @param password Description of the Parameter
92      * @param path Description of the Parameter
93      * @return Description of the Return Value
94      */

95     public boolean changeProviderSettings(String JavaDoc name, String JavaDoc maintainer, String JavaDoc account, String JavaDoc password, String JavaDoc path) {
96
97         ProviderInterface provider = ProviderManager.get(name);
98         if (provider != null) {
99             String JavaDoc method = provider.getMethod();
100             provider.setMaintainer(maintainer);
101             provider.setPath(path);
102             if (method.equals("http")) {
103                 ((HttpProvider) provider).setAccount(account);
104                 ((HttpProvider) provider).setPassword(password);
105             }
106         }
107         ProviderManager.writeProviderFile();
108         return true;
109     }
110
111
112     /**
113      * Description of the Method
114      *
115      * @param name Description of the Parameter
116      * @return Description of the Return Value
117      */

118     public boolean delProvider(String JavaDoc name) {
119         if (ProviderManager.delete(name)) {
120             // handle ok
121
} else {
122             // handle a problem
123
return false;
124         }
125         ProviderManager.writeProviderFile();
126         return true;
127     }
128
129
130     /**
131      * Adds a feature to the SubscribeProvider attribute of the Controller object
132      *
133      * @param url The feature to be added to the SubscribeProvider attribute
134      * @return Description of the Return Value
135      */

136     public List JavaDoc addSubscribeProvider(String JavaDoc url) {
137         List JavaDoc list = new ArrayList JavaDoc();
138         VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase());
139         MMObjectNode virtual = builder.getNewNode("admin");
140
141         String JavaDoc result = ProviderManager.addSubscribeProvider(url);
142         if (result != null) {
143             virtual.setValue("feedback", result);
144         }
145         ProviderManager.writeProviderFile();
146
147         list.add(virtual);
148         return list;
149     }
150
151
152     /**
153      * Adds a feature to the DiskProvider attribute of the Controller object
154      *
155      * @param name The feature to be added to the DiskProvider attribute
156      * @param path The feature to be added to the DiskProvider attribute
157      * @return Description of the Return Value
158      */

159     public List JavaDoc addDiskProvider(String JavaDoc name, String JavaDoc path) {
160         List JavaDoc list = new ArrayList JavaDoc();
161         VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase());
162         MMObjectNode virtual = builder.getNewNode("admin");
163
164         String JavaDoc result = ProviderManager.addDiskProvider(name, path);
165         if (result != null) {
166             virtual.setValue("feedback", result);
167         }
168         ProviderManager.writeProviderFile();
169         list.add(virtual);
170         return list;
171     }
172
173
174     /**
175      * Gets the providers attribute of the Controller object
176      *
177      * @return The providers value
178      */

179     public List JavaDoc getProviders() {
180         // signal action to for package discovery
181
ProviderManager.resetSleepCounter();
182
183         // get the current providers
184
Iterator JavaDoc providers = ProviderManager.getProviders();
185
186         List JavaDoc list = new ArrayList JavaDoc();
187         VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase());
188
189         while (providers.hasNext()) {
190             ProviderInterface provider = (ProviderInterface) providers.next();
191             MMObjectNode virtual = builder.getNewNode("admin");
192             virtual.setValue("method", provider.getMethod());
193             virtual.setValue("name", provider.getName());
194             virtual.setValue("maintainer", provider.getMaintainer());
195             virtual.setValue("state", provider.getState());
196             list.add(virtual);
197         }
198         return list;
199     }
200
201
202     /**
203      * Gets the providerInfo attribute of the Controller object
204      *
205      * @param name Description of the Parameter
206      * @return The providerInfo value
207      */

208     public List JavaDoc getProviderInfo(String JavaDoc name) {
209         // get the current providers
210
ProviderInterface provider = ProviderManager.get(name);
211
212         List JavaDoc list = new ArrayList JavaDoc();
213         VirtualBuilder builder = new VirtualBuilder(MMBase.getMMBase());
214
215         MMObjectNode virtual = builder.getNewNode("admin");
216
217         if (provider != null) {
218             virtual.setValue("method", provider.getMethod());
219             virtual.setValue("name", provider.getName());
220             virtual.setValue("maintainer", provider.getMaintainer());
221             virtual.setValue("state", provider.getState());
222             virtual.setValue("path", provider.getPath());
223             if (provider.getMethod().equals("http")) {
224                 virtual.setValue("account", ((HttpProvider) provider).getAccount());
225                 virtual.setValue("password", ((HttpProvider) provider).getPassword());
226             }
227         }
228         list.add(virtual);
229         return list;
230     }
231
232
233 }
234
235
Popular Tags