1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.configuration.web;
18
19 import java.applet.Applet;
20 import java.util.Iterator;
21 import java.util.List;
22
23 import org.apache.commons.collections.iterators.ArrayIterator;
24 import org.apache.commons.configuration.AbstractConfiguration;
25 import org.apache.commons.configuration.PropertyConverter;
26
27 /***
28 * A configuration wrapper to read applet parameters. This configuration is
29 * read only, adding or removing a property will throw an
30 * UnsupportedOperationException.
31 *
32 * @author <a href="mailto:ebourg@apache.org">Emmanuel Bourg</a>
33 * @version $Revision: 155408 $, $Date: 2005-02-26 13:56:39 +0100 (Sa, 26 Feb 2005) $
34 * @since 1.1
35 */
36 public class AppletConfiguration extends AbstractConfiguration
37 {
38 protected Applet applet;
39
40 /***
41 * Create an AppletConfiguration using the initialization parameters of
42 * the specified Applet.
43 *
44 * @param applet
45 */
46 public AppletConfiguration(Applet applet)
47 {
48 this.applet = applet;
49 }
50
51 public Object getProperty(String key)
52 {
53 Object value = applet.getParameter(key);
54 List list = PropertyConverter.split((String) value, getDelimiter());
55
56 return list.size() > 1 ? list : value;
57 }
58
59 /***
60 * <p><strong>This operation is not supported and will throw an
61 * UnsupportedOperationException.</strong></p>
62 *
63 * @throws UnsupportedOperationException
64 */
65 protected void addPropertyDirect(String key, Object obj)
66 {
67 throw new UnsupportedOperationException("Read only configuration");
68 }
69
70 public boolean isEmpty()
71 {
72 return !getKeys().hasNext();
73 }
74
75 public boolean containsKey(String key)
76 {
77 return getProperty(key) != null;
78 }
79
80 /***
81 * <p><strong>This operation is not supported and will throw an
82 * UnsupportedOperationException.</strong></p>
83 *
84 * @throws UnsupportedOperationException
85 */
86 public void clearProperty(String key)
87 {
88 throw new UnsupportedOperationException("Read only configuration");
89 }
90
91 public Iterator getKeys()
92 {
93 String[][] paramsInfo = applet.getParameterInfo();
94 String[] keys = new String[paramsInfo != null ? paramsInfo.length : 0];
95 for (int i = 0; i < keys.length; i++)
96 {
97 keys[i] = paramsInfo[i][0];
98 }
99
100 return new ArrayIterator(keys);
101 }
102 }