01 package de.java2html.plugin.jspwiki;
02
03 import java.util.Map;
04
05 import com.ecyrd.jspwiki.plugin.PluginException;
06
07 import de.java2html.options.ConversionOptionsUtilities;
08 import de.java2html.options.HorizontalAlignment;
09 import de.java2html.options.JavaSourceConversionOptions;
10 import de.java2html.options.JavaSourceStyleTable;
11 import de.java2html.plugin.AbstractJava2HtmlPlugin;
12 import de.java2html.plugin.ParameterUtilities;
13
14 /**
15 * @author Markus Gebhard
16 */
17 public class PluginConversionOptionsParser {
18
19 public JavaSourceConversionOptions parseConversionOptions(Map params) throws PluginException {
20 final JavaSourceConversionOptions conversionOptions = AbstractJava2HtmlPlugin.getDefaultSettings().getConversionOptions();
21 adjustStyleTable(params, conversionOptions);
22 adjustBorder(params, conversionOptions);
23 adjustLineNumbers(params, conversionOptions);
24 adjustTabSize(params, conversionOptions);
25 adjustAlignment(params, conversionOptions);
26 return conversionOptions;
27 }
28
29 private void adjustStyleTable(Map params, JavaSourceConversionOptions conversionOptions)
30 throws PluginException {
31 final String style = ParameterUtilities.getParameter(params, PluginParameter.STYLE);
32 if (style != null) {
33 final JavaSourceStyleTable styleTable = JavaSourceStyleTable.getPredefinedTable(style);
34 if (styleTable == null) {
35 throw new PluginException(
36 "Unsupported style '"
37 + style
38 + "' - available styles are: "
39 + ConversionOptionsUtilities.getPredefinedStyleTableNameString());
40 }
41 conversionOptions.setStyleTable(styleTable);
42 }
43 }
44
45 private void adjustBorder(Map params, JavaSourceConversionOptions conversionOptions) throws PluginException {
46 final String border = ParameterUtilities.getParameter(params, PluginParameter.BORDER);
47 if (border != null) {
48 conversionOptions.setShowTableBorder(ParameterUtilities.getBoolean(border));
49 }
50 }
51
52 private void adjustLineNumbers(Map params, JavaSourceConversionOptions conversionOptions)
53 throws PluginException {
54 final String lineNumbers = ParameterUtilities.getParameter(params, PluginParameter.LINE_NUMBERS);
55 if (lineNumbers != null) {
56 conversionOptions.setShowLineNumbers(ParameterUtilities.getBoolean(lineNumbers));
57 }
58 }
59
60 private void adjustTabSize(Map params, JavaSourceConversionOptions conversionOptions) throws PluginException {
61 final String tabSize = ParameterUtilities.getParameter(params, PluginParameter.TAB_SIZE);
62 if (tabSize != null) {
63 conversionOptions.setTabSize(ParameterUtilities.getInt(tabSize));
64 }
65 }
66
67 private void adjustAlignment(Map params, JavaSourceConversionOptions conversionOptions) throws PluginException {
68 final String alignment = ParameterUtilities.getParameter(params, PluginParameter.ALIGNMENT);
69 if (alignment != null) {
70 final HorizontalAlignment horizontalAlignment = HorizontalAlignment.getByName(alignment);
71 if (horizontalAlignment == null) {
72 throw new PluginException(
73 "Unsupported alignment '"
74 + alignment
75 + "' - valid values are: "
76 + ConversionOptionsUtilities.getAvailableHorizontalAlignmentNameString());
77 }
78 conversionOptions.setHorizontalAlignment(horizontalAlignment);
79 }
80 }
81 }
|