KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > java2html > plugin > jspwiki > PluginParameterChecker


1 package de.java2html.plugin.jspwiki;
2
3 import java.util.Iterator JavaDoc;
4 import java.util.Map JavaDoc;
5 import java.util.Set JavaDoc;
6
7 import com.ecyrd.jspwiki.plugin.PluginException;
8
9 /**
10  * @author Markus Gebhard
11  */

12 public class PluginParameterChecker {
13
14   public void checkParametersSupported(Map JavaDoc params) throws PluginException {
15     checkParameterKeysSupported(params.keySet().toArray());
16   }
17
18   private void checkParameterKeysSupported(Object JavaDoc[] parameterKeys) throws PluginException {
19     for (int i = 0; i < parameterKeys.length; i++) {
20       checkParameterKeySupported(parameterKeys[i]);
21     }
22   }
23
24   private void checkParameterKeySupported(Object JavaDoc parameterKey) throws PluginException {
25     if (!(parameterKey instanceof String JavaDoc)) {
26       return;
27     }
28     String JavaDoc parameterName = (String JavaDoc) parameterKey;
29     if (PluginParameter.isInternal(parameterName)) {
30       return;
31     }
32     if (!PluginParameter.getAllNames().contains(parameterName)) {
33       throw new PluginException(
34         "Unsupported parameter '" + parameterName + "'." + createValidParameterHtmlTable());
35     }
36   }
37
38   public static String JavaDoc createValidParameterHtmlTable() {
39     StringBuffer JavaDoc html = new StringBuffer JavaDoc();
40     html.append(
41       "<table border=\"1\"><tr>" + "<th>Parameter</th>" + "<th>Description</th>" + "<th>Example</th>" + "</tr>");
42     Set JavaDoc set = PluginParameter.getAll();
43     for (Iterator JavaDoc iter = set.iterator(); iter.hasNext();) {
44       PluginParameter parameter = (PluginParameter) iter.next();
45       if (!parameter.isInternal()) {
46         appendParameterTableRow(html, parameter);
47       }
48     }
49     html.append("</table>");
50     return html.toString();
51   }
52
53   private static void appendParameterTableRow(StringBuffer JavaDoc html, PluginParameter parameter) {
54     html.append(
55       "<tr>"
56         + "<td><code>"
57         + parameter.getName()
58         + "</code></td>"
59         + "<td>"
60         + parameter.getDescription()
61         + "</td>"
62         + "<td><code>"
63         + parameter.getName()
64         + "="
65         + "'"
66         + parameter.getExampleValue()
67         + "'"
68         + "</code></td>"
69         + "</tr>");
70   }
71 }
Popular Tags